Python получает корректный путь для файла

Я хочу выписать путь 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, Какова ошибка?

-1
задан 8 October 2018 в 05:32

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')
1
ответ дан 27 October 2019 в 08:45

Другие вопросы по тегам:

Похожие вопросы: