Python ftplib文件传输error_perm
题
我正在尝试在Python 2.7中自动测试(在Linux Ubuntu 12.04上的Eclipse中),我需要测试FTP服务器以下内容: 我必须在主机上创建一个文件,每次FTP将其传输到另一台PC,然后将其转回我的主机下方的另一个名称。然后我有两个我必须比较的文件。我开始这样的:
#create the two files
firstFilename = "first_testfile.txt"
secondFilename = "second_testfile.txt"
os.system("echo \"test\" > {0}".format(firstFilename))
os.system("touch {0}".format(secondFilename))
#setup FTP connection transfer file to other computer
ftp = self.setupFTP()
ftp.set_pasv(True)
f = open(firstFilename)
ftp.storbinary("STOR {0} ".format(firstFilename), f)
f.close
ftp.quit()
#setup FTP connection transfer file back to host (other filename)
ftp = self.setupFTP()
ftp.set_pasv(True)
f = open(secondFilename, "wb")
ftp.retrbinary("RETR {0} ".format(secondFilename), f.write)
ftp.quit()
#comparison-part will be implemented later
firstOutput = os.system("cat {0}".format(firstFilename))
secondOutput = os.system("cat {0}".format(secondFilename))
#compare somehow
.
执行此代码为我提供以下错误:
ftp.retrbinary("RETR {0} ".format(secondFilename), f.write)
error_perm: 550 second_testfile.txt : No such file or directory
.
有谁知道我做错了什么?
解决方案
编辑&解决:我发现了我的问题,它应该是
ftp.retrbinary("RETR {0} ".format(firstFilename), f.write)
.
而不是
ftp.retrbinary("RETR {0} ".format(secondFilename), f.write)
.
因为我想到后,我必须判断如何调用文件(实际上是filehandler是什么)而不是如何调用FTP上的文件。
不隶属于 StackOverflow