我正在使用 python 从 ftp 服务器下载文件,我能够下载文件,但是当我打开文件时,它们似乎已损坏或无法打开歌曲或 jpg 等文件工作正常,但文档、Excel 表格、pdf 和文本文件下载不正确。
以下是我的代码:
from ftplib import FTP
ftp = FTP()
ftp.connect(ip_address,port)
ftp.login(userid,password)
direc='directory path'
ftp.cwd(direc)
doc='doc.txt' or xlsx or pdf or jpg etc
download_path='path to download file on desktop'
file=open(download_path+ doc,'wb')
ftp.retrbinary(f"RETR {doc}", file.write)
Run Code Online (Sandbox Code Playgroud)
我能够下载所需的文件,但其中大部分都需要损坏。我应该进行哪些更改才能使代码正常工作。
目前无法测试 FTP,但我看到的是您的文件打开但未关闭的问题。
选项A:
file=open(download_path + doc,'wb') # add '+' to append instead of overwriting
...
...
file.close()
Run Code Online (Sandbox Code Playgroud)
选项 B(上下文管理器,有用,因为它会在完成后关闭文件):
with open(download_path + doc,'wb') as file:
file.write(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
关于模块的使用, stevehaftplib在以下帖子ftp.retrbinary() help python中得到了很好的回应。
关于使用上下文管理器打开和写入文件,请参阅如何使用 open with 语句打开文件,以及处理异常(Python 3 文档) ,如Sir-snoopalot引用
另请检查ftplib模块文档以获取进一步说明。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
2382 次 |
| 最近记录: |