Получить все имена файлов внутри каталога на FTP [Python]

Сегодня я столкнулся с большой проблемой, и, поскольку я новичок в 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 есть папка)

Любые предложения или идеи приветствуются! Спасибо, Йенте.


person Yenthe    schedule 10.03.2014    source источник


Ответы (2)


Как насчет:

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

Or:

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 теперь представляет собой список элементов в этом каталоге, которые вы можете вызывать.

person anon582847382    schedule 10.03.2014
comment
К сожалению, из-за фреймворка и платформы, которые я использую, я не могу использовать этот. Для 99% людей это на самом деле было бы хорошо, да, но мне нужен другой способ! Извините, я забыл упомянуть об этом. - person Yenthe; 10.03.2014
comment
ПОТРЯСАЮЩИЕ! Это на самом деле исправление :) Теперь, вы также знаете способ получить все имена файлов, если есть файлы внутри каталога, где есть другой каталог? Итак, каталог для поиска: file.css, file.html, file.txt, каталог. Как я могу получить файлы в каталоге, который находится внутри каталога, который я ищу? Кстати, офигенные знания в программировании для твоего возраста. - person Yenthe; 10.03.2014
comment
Справедливо! Вы решили основную проблему, поэтому я принял ответ. Благодарю вас! - person Yenthe; 10.03.2014

Я получаю все пути/файлы с этим кодом:

import ftplib

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

files = server.nlst('your FTP folder path')
print(files)
person laoc81    schedule 19.02.2021