列出ftp上的文件名而前面没有meta

时间:2018-11-30 15:55:04

标签: python

我正在尝试获取ftp目录中的文件名列表。我尝试了以下方法:

import ftplib
from os import listdir
from os.path import isfile, join

class FtpObj:
    def __init__(self, host, user, password):
        self.ftp = ftplib.FTP(host)
        self.ftp.login(user=user, passwd=password)

    def list_files(self):
        files = []
        self.ftp.dir(files.append)

        print('Found ' + str(len(files)) + 'Files')
        return files

但是,这会返回list格式奇怪的文件名,格式为:

total 71708
-rw-rw-rw- 1   gpatwprd        tmwdprd 4799    Nov 30 05:43 20181129.Name A with Space.CSV
-rw-rw-rw- 1   gpatwprd        tmwdprd 290     Nov 30 05:09 20181129.name D with Space.CSV

第一部分-rw-rw-rw- 1 gpatwprd tmwdprd 4799 Nov 30 05:43和第一行total 71708都是元数据并且是多余的。

如何在没有所有这些混乱文本的情况下仅获取原始文件名?


这与How to get only a part from a string in python不同 原因:因为我正在寻找一种更干净的方法来提取文件名。在另一个问题中,它涉及具有字符串列表,然后解析这些字符串的一部分。完全无关。在将其标记为可能重复之前,请先阅读我的问题,我注意到这种情况经常发生。

1 个答案:

答案 0 :(得分:2)

您可以使用ftplib.FTP的此功能来获取文件名列表:

files = ftp.nlst()

ftplib docs