使用 ftplib 从 FTP 服务器下载文件:总是 0 bytes/empty
Downloading file from FTP server with ftplib: Always 0 bytes/empty
我正在尝试使用 Python ftplib 从 FTPS 服务器下载文件。
但是下载的文件总是0字节(为空)。
如果我使用 WinSCP 在服务器中看到该文件,则该文件有数据(大约 1Kb)。
在 WinSCP 中,我使用选项 "Encryption: Explicit TSL" 和 "PassiveMode=False".
代码有什么问题?
谢谢!!
这是我使用的代码:
import ftplib
server='10.XX.XX.XX'
username='username'
password='password'
session = ftplib.FTP_TLS(server)
session.login(user=username,passwd=password)
session.prot_p()
session.set_pasv(False)
session.nlst()
session.cwd("home")
print(session.pwd())
filename = "test.txt"
# Open a local file to store the downloaded file
my_file = open(r'c:\temp\ftpTest.txt', 'wb')
session.retrbinary('RETR ' + filename, my_file.write, 1024)
session.quit()
您没有在下载后关闭本地文件。您应该为此使用上下文管理器。 FTP 会话也类似:
with ftplib.FTP_TLS(server) as session:
session.login(user=username, passwd=password)
session.prot_p()
session.set_pasv(False)
session.nlst()
session.cwd("home")
print(session.pwd())
filename = "test.txt"
# Open a local file to store the downloaded file
with open(r'c:\temp\ftpTest.txt', 'wb') as my_file:
session.retrbinary('RETR ' + filename, my_file.write, 1024)
我正在尝试使用 Python ftplib 从 FTPS 服务器下载文件。
但是下载的文件总是0字节(为空)。 如果我使用 WinSCP 在服务器中看到该文件,则该文件有数据(大约 1Kb)。 在 WinSCP 中,我使用选项 "Encryption: Explicit TSL" 和 "PassiveMode=False".
代码有什么问题? 谢谢!!
这是我使用的代码:
import ftplib
server='10.XX.XX.XX'
username='username'
password='password'
session = ftplib.FTP_TLS(server)
session.login(user=username,passwd=password)
session.prot_p()
session.set_pasv(False)
session.nlst()
session.cwd("home")
print(session.pwd())
filename = "test.txt"
# Open a local file to store the downloaded file
my_file = open(r'c:\temp\ftpTest.txt', 'wb')
session.retrbinary('RETR ' + filename, my_file.write, 1024)
session.quit()
您没有在下载后关闭本地文件。您应该为此使用上下文管理器。 FTP 会话也类似:
with ftplib.FTP_TLS(server) as session:
session.login(user=username, passwd=password)
session.prot_p()
session.set_pasv(False)
session.nlst()
session.cwd("home")
print(session.pwd())
filename = "test.txt"
# Open a local file to store the downloaded file
with open(r'c:\temp\ftpTest.txt', 'wb') as my_file:
session.retrbinary('RETR ' + filename, my_file.write, 1024)