Python получить правильный путь для файла
Я хочу выписать путь к zip-файлам, которые находятся в папке "zips". Вот мой код:
import os, zipfile
directory = 'zips'
for filename in os.listdir(directory):
if filename.endswith(".zip"):
file_name = os.path.abspath(filename) # get full path of files
print(file_name)
continue
else:
print("NO")
Теперь он дает неверный ответ: /home/huhu/PycharmProjects/monitoring/aa.zip /home/huhu/PycharmProjects/monitoring/bb.zip
И это должно быть /home/huhu/PycharmProjects/monitoring/zips/aa.zip /home/huhu/PycharmProjects/monitoring/zips/bb.zip В чем ошибка?
1 ответ
Потому что результат os.listdir(directory)
список имен (без пути) файлов в этом каталоге (['aa.zip','bb.zip']
). Когда вы даете им os.path.abspath(filename)
они считаются в вашем текущем каталоге, так как zips
каталог нигде не упоминается. Вы можете использовать вместо:
import glob
for file in glob.glob('zips/*')
или даже, чтобы избежать фильтрации:
for file in glob.glob('zips/*.zip')