获取FTP上的所有文件名[Python]

时间:2014-03-10 15:42:39

标签: python ftp filenames ftplib

今天我遇到了一个大问题,因为我对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中有文件夹,也是如此)

欢迎任何建议或想法! 谢谢 Yenthe

3 个答案:

答案 0 :(得分:9)

怎么样:

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现在是您可以调用的目录中的项目列表。

答案 1 :(得分:0)

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

import ftplib

server= ftplib.FTP_TLS('YOUR FTP ADRESS','USER','PASSWORD')
print("CONNECTED TO FTP")

files = server.nlst('your FTP folder path')
print(files)

答案 2 :(得分:0)

from ftplib import FTP

ftp = FTP("hostname")
ftp.login("username", "password")
ftp.cwd("foldername")
files = ftp.nlst()
print(files)