Python FTP下载文件空间的文件名

问题描述 投票:0回答:1

上周我们的测量设备供应商更新了固件。我在这里始终使用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)

我已经尝试了各种方法来让它接受全名,但是我被困住了。并没有到达任何地方。

有任何解决建议吗?

python ftp ftplib
1个回答
0
投票

您没有提供我所要求的信息。无论如何,基于信息化,我们有:

您的FTP服务器似乎已损坏,它将返回完整的目录列表,包括NLST响应中的元数据。这违反了FTP规范。我认为您的代码没有任何问题。您必须通过从NLST响应中剥离元数据来解决该错误。

f = f.split()[-1]
© www.soinside.com 2019 - 2024. All rights reserved.