Python FTP 参数无效
Python FTP invalid argument
Python3.6.1,Windows10 x64
我使用此脚本的目标是从 FTP 站点抓取一个 .zip 文件,然后将其放入本地目录:
from ftplib import FTP
FTP_SERVER = 'ftp.name.com'
def main():
ftp_conn = FTP(FTP_SERVER)
ftp_conn.login('username','password')
get_binary_file(ftp_conn, 'file.zip', 'C:\Temp\test.zip')
ftp_conn.close()
def get_binary_file(ftp_client, file_name, dest=None):
if not dest:
dest = file_name
ftp_cmd = 'RETR {}'.format(file_name)
with open(dest,'wb') as dest_in:
ftp_client.retrbinary(
ftp_cmd,
dest_in.write
)
if __name__ == '__main__':
main()
我不断收到第三个参数 (C:\Temp\test.zip) 无效的错误消息:
Traceback (most recent call last):
File "C:/code/ftp_dl_binary_file1.py", line 32, in <module>
main()
File "C:/code/ftp_dl_binary_file1.py", line 13, in main
get_binary_file(ftp_conn, 'file.zip', 'C:\Temp\test.zip')
File "C:/code/ftp_dl_binary_file1.py", line 23, in get_binary_file
with open(dest,'wb') as dest_in:
OSError: [Errno 22] Invalid argument: 'C:\Temp\test.zip'
这个论点有什么不对的地方?
\test.zip
中的 \t
被解释为制表符 control character。
你应该改为:
get_binary_file(ftp_conn, 'file.zip', 'C:/Temp/test.zip')
或者:
get_binary_file(ftp_conn, 'file.zip', 'C:\Temp\test.zip')
Python3.6.1,Windows10 x64
我使用此脚本的目标是从 FTP 站点抓取一个 .zip 文件,然后将其放入本地目录:
from ftplib import FTP
FTP_SERVER = 'ftp.name.com'
def main():
ftp_conn = FTP(FTP_SERVER)
ftp_conn.login('username','password')
get_binary_file(ftp_conn, 'file.zip', 'C:\Temp\test.zip')
ftp_conn.close()
def get_binary_file(ftp_client, file_name, dest=None):
if not dest:
dest = file_name
ftp_cmd = 'RETR {}'.format(file_name)
with open(dest,'wb') as dest_in:
ftp_client.retrbinary(
ftp_cmd,
dest_in.write
)
if __name__ == '__main__':
main()
我不断收到第三个参数 (C:\Temp\test.zip) 无效的错误消息:
Traceback (most recent call last):
File "C:/code/ftp_dl_binary_file1.py", line 32, in <module>
main()
File "C:/code/ftp_dl_binary_file1.py", line 13, in main
get_binary_file(ftp_conn, 'file.zip', 'C:\Temp\test.zip')
File "C:/code/ftp_dl_binary_file1.py", line 23, in get_binary_file
with open(dest,'wb') as dest_in:
OSError: [Errno 22] Invalid argument: 'C:\Temp\test.zip'
这个论点有什么不对的地方?
\test.zip
中的 \t
被解释为制表符 control character。
你应该改为:
get_binary_file(ftp_conn, 'file.zip', 'C:/Temp/test.zip')
或者:
get_binary_file(ftp_conn, 'file.zip', 'C:\Temp\test.zip')