![python 获取文件的正确路径](https://linux22.com/image/1065049/python%20%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E7%9A%84%E6%AD%A3%E7%A1%AE%E8%B7%AF%E5%BE%84.png)
我想写出位于“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')