Я хочу выписать путь zipfiles, которые расположены в папке "zip". Вот мой код:
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, Какова ошибка?
Поскольку результат 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')