2017-04-14 1 views
2

파이썬 3.6, 윈도우 10 64파이썬 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() 
(: \ 임시 \의 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

을! 버니 감사합니다! – Matt

+0

대단히 환영합니다! – bernie