2017-04-14 20 views
2

のPython 3.6.1、このスクリプトを使用してWindows 10のx64PythonのFTP無効な引数

私の目標は、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() 
無効です:

私は第3引数(\一時\のtest.zip C)が:というエラーを取得しておく

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' 

引数について無効とは何ですか?

答えて

2

\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') 
+0

を!ありがとうBernie! – Matt

+0

あなたは大歓迎です! – bernie