python 获取文件的正确路径

python 获取文件的正确路径

我想写出位于“zips”文件夹中的 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

因为 的结果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')

相关内容