获取FTP目录中的所有文件名 [Python]

5 投票
3 回答
14042 浏览
提问于 2025-04-17 21:39

今天我遇到了一个大问题,因为我对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 个回答

1
from ftplib import FTP

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

当然可以!请把你想要翻译的内容发给我,我会帮你把它变得更简单易懂。

3

我用这段代码获取了所有的路径和文件:

import ftplib

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

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

这样怎么样:

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 现在是一个包含该目录内项目的列表,你可以调用这些项目。

撰写回答