gpt4 book ai didi

python - 使用 python 扫描文件夹内所有已确定的文件

转载 作者:太空宇宙 更新时间:2023-11-03 20:42:09 25 4
gpt4 key购买 nike

我需要用 python 编写一段代码,该代码可以扫描包含确定扩展名(如 .exe、.jpg、.pdf)的文件夹内的所有文件。

就像linux命令“ls | grep *.pdf”

我尝试使用包含我需要的所有扩展名的列表,并使用正则表达式在文件夹内搜索它。但我不知道要在 re.search() 中放入什么

我不想使用“os”库之类的东西,因为这个脚本需要在 Linux 和 Windows 上运行。

#!/usr/bin/python

import re

file_types = [".exe", ".jpg", ".pdf", ".png", ".txt"]

for line in file_types:
# Do something like "ls | grep * + line"
namefile = re.search(line, i_dont_know_what_to_put_here)
print(namefile)

更新:谢谢大家的帮助,我使用了 glob 库,它可以工作!

最佳答案

您可以使用 glob 模块来避免使用 os 模块,该模块可以通过正则表达式(即 *.py)过滤文件

from glob import glob
file_types = [".exe", ".jpg", ".pdf", ".png", ".txt"]
path = "path/to/files/*{}"


fnames = [ fname for fnames in [[fname for fname in glob( path.format( ext ))] for ext in file_types] for fname in fnames]

很难阅读,但等效的是:

from glob import glob 
file_types = [".exe", ".jpg", ".pdf", ".png", ".txt"]
fnames = []
for ext in file_types:
for fname in glob( path.format( ext )):
fnames.append( fname )

编辑:我不确定这如何跨平台工作,正如其他一些答案所考虑的那样。

EDIT2:glob 在 Windows 中使用时可能会产生意想不到的副作用。 Getting Every File in a Windows Directory

关于python - 使用 python 扫描文件夹内所有已确定的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56798613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com