文件名中有空格的Python FTP下载文件

2024-05-29 04:59:20 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我试过各种方法让它接受全名,但我被卡住了。却一事无成。你知道吗

关于如何解决这个问题有什么建议吗?你知道吗


Tags: theinself脚本if文件名confftp
1条回答
网友
1楼 · 发布于 2024-05-29 04:59:20

你没有提供我要的信息。总之,根据我们掌握的信息:

您的FTP服务器似乎已损坏,它将返回完整的目录列表,包括NLST响应中的元数据。这违反了FTP规范。我不认为你的代码有什么问题。您必须通过从NLST响应中剥离元数据来解决这个bug。你知道吗

f = f.split()[-1]

相关问题 更多 >

    热门问题