【问题标题】:Get all filenames inside a directory on FTP [Python]获取 FTP 目录中的所有文件名 [Python]
【发布时间】:2014-03-10 15:42:38
【问题描述】:

今天我遇到了一个大问题,因为我对 Python 还很陌生,所以我真的需要寻求帮助。

我已成功连接到我的 FTP 并正确登录。

ftp = ftplib.FTP('ftp.lala.com', 'username', 'pass')

作为第二步,我进入我想要的目录:

ftp.cwd("dirName")

但后来我卡住了。我现在需要以字符串/数组/列表/..格式获取所有文件名,以便能够使用所有这些名称。我已经尝试过 OS、glob、.. 但这似乎没有任何作用。 请问有什么想法吗?我需要获取所需目录中的每个文件名以及所需目录中的任何目录/文件。

我需要改变这个

for fileName in glob.glob("*.*"):
    self.out(fileName)

转到路径 ftp.lala.com/myDir/ 然后取出所有文件名(如果 myDir 中有文件夹)

欢迎任何建议或想法! 谢谢 延特

【问题讨论】:

    标签: python ftp filenames ftplib


    【解决方案1】:

    怎么样:

    contents = ftp.retrlines('LIST')  # List CWD contents securely.
    

    或者:

    try:
        files = ftp.nlst()
    except ftplib.error_perm, resp:
        if str(resp) == "550 No files found":
            print("No files in this directory.")
    else:
        raise
    

    contents 现在是该目录中您可以调用的项目列表。

    【讨论】:

    • 由于我使用的框架和平台,我无法使用这个。对于 99% 的人来说,这实际上是好的,是的,但我需要另一种方式!对不起,我忘了提。
    • 太棒了!这实际上是一个修复:) 现在,如果一个目录中有文件,而另一个目录是另一个目录,您是否还知道一种获取所有文件名的方法?所以要搜索的目录:file.css、file.html、file.txt、目录我怎样才能在我搜索的目录内的目录中获取文件?顺便说一句,适合你这个年龄的很棒的编程知识。
    • 很公平!你已经解决了主要问题,所以我接受了答案。谢谢!
    【解决方案2】:

    我使用此代码获取所有路径/文件:

    import ftplib
    
    server= ftplib.FTP_TLS('YOUR FTP ADRESS','USER','PASSWORD')
    print("CONNECTED TO FTP")
    
    files = server.nlst('your FTP folder path')
    print(files)
    

    【讨论】:

      【解决方案3】:
      from ftplib import FTP
      
      ftp = FTP("hostname")
      ftp.login("username", "password")
      ftp.cwd("foldername")
      files = ftp.nlst()
      print(files)
      

      【讨论】:

        猜你喜欢
        • 2011-07-10
        • 1970-01-01
        • 2014-05-20
        • 2016-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多