上周我们的测量设备供应商更新了固件。我在这里始终使用python脚本下载所有“ .rd”文件。
正式地,固件返回的文件名始终像“ 191222_221400.rd”一个完整的文件名。
不幸的是,更新后,固件以“” rw group owner oct 9_191222_221400.rd“的形式提供给它
脚本现在停止编写的位置。然后不删除它。
## Handles to download and delete the .rd file in the project folder
def downloadAndDelet_RD(self):
time.sleep(5)
files = []
#print self.conf.INSipAddress
ftp = ftplib.FTP(self.conf.INSipAddress)
ftp.login()
files = ftp.nlst()
for f in files:
if f.endswith(".rd"):
#print self.conf.newP + '//' + self.conf.nativefolderName + '//' +self.gpsSelectedProject+"//"+f
ftpfile = urllib2.urlopen("ftp://"+self.conf.INSipAddress +"//"+f)
localfile = open(self.conf.newP + '//' + self.conf.nativefolderName + '//' +self.gpsSelectedProject+"//"+f, "wb")
ftp.retrbinary('RETR %s' % f, localfile.write)
localfile.close()
if self.conf.INSDeleteRD == 1:
ftp.delete(f)
我已经尝试了各种方法来让它接受全名,但是我被困住了。并没有到达任何地方。
有任何解决建议吗?
您没有提供我所要求的信息。无论如何,基于信息化,我们有:
您的FTP服务器似乎已损坏,它将返回完整的目录列表,包括NLST
响应中的元数据。这违反了FTP规范。我认为您的代码没有任何问题。您必须通过从NLST
响应中剥离元数据来解决该错误。
f = f.split()[-1]