python-3.x - Python FTP 无效参数

标签 python-3.x ftp ftplib

Python 3.6.1、Windows 10 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')

关于python-3.x - Python FTP 无效参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43419066/

相关文章:

java - 如何让 MockFTPServer 抛出异常

linux - 使用FTP向设备传输文件,是否需要运行服务器?

python - 当将 imaplib 与 cx_Freeze 一起使用时,获取 "module ' imaplib' 没有属性 'IMAP4_SSL'

python - 实现 Jedi 可以理解的惰性属性

arrays - Numpy 4x3 矩阵 LinAlgError : 1-dimensional array given. 数组必须至少是二维的

时间:4 : check if FTP directory exists

python - 具有精确连接数的多处理 FTP 上传

Python FTP 隐式 TLS 连接问题

Python ftplib.error_perm 550 : No such file or directory?

python - 当某些文本在 python 3 前面时如何打印文本进度条?