我有一堆文件和一些文件夹。我正在尝试将拉链附加到列表中,以便我可以在代码的其他部分中提取这些文件。它从未找到拉链。
for file in os.listdir(path):
print(file)
if file.split(".")[1] == 'zip':
reg_zips.append(file)
路径很好或者不打印任何东西。它每次都会获取相同的文件,但不会接收任何其他文件。它占据了目录中大约1/5的文件。
完全失败。我已经通过在代码中放置time.sleep(3)来确保文件可用性的一些奇怪的竞争条件不是问题。没有解决它。
答案 0 :(得分:3)
您的文件可能包含多个句点。尝试使用str.endswith
:
reg_zips = []
for file in os.listdir(path):
if file.endswith('zip'):
reg_zips.append(file)
另一个好主意(谢谢Jean-FrançoisFabre!)是使用os.path.splitext
,它可以很好地处理扩展:
if os.path.splitext(file)[-1] == '.zip':
...
更好的解决方案,我建议使用glob.glob
功能:
import glob
reg_zips = glob.glob('*.zip')
答案 1 :(得分:0)
reg_zips = [z for z in os.listdir(path) if z.endswith("zip")]