python - Python 在几个特定/最新的目录中搜索,而不是全部使用 os.walk
问题描述
我是新来的,但已经在这里尝试学习 python 一段时间了。我现在搜索了几个小时来提出解决方案,然后搜索了一段时间,不幸的是不得不放弃。总结一下:
我需要编写代码来查找具有特定名称的文件,然后将它们合并(pdf)。如果我不使用“finaldir”扩展路径,一切都很好,但是:有很多日期类似于“finaldir”的目录,我希望我的脚本只在名为 finaldir 的目录中搜索,并且在 -x 天的范围内它。
示例:finaldir = '2020-02-04' 脚本应查找名为:'2020-02-04'、'2020-02-03'、'2020-02-02'、'2020-02-01'、 '2020-01-31'、'2020-01-30' ...等
finaldir = '2020-02-04' #this is example, Script get data from excel workbook
for path, dirs, files in os.walk(r'C:\Python\testfiles\haha'+'\\'+ str(finaldir)):
for dir in dirs:
if dir == 'asd' or dir == 'qwe': #script get 1 file from each folder
for file in os.listdir(os.path.join(path, dir)):
if regex1.match(file) or regex2.match(file): #patterns for file 1 and 2
pdf_files.append(os.path.join(path, dir, file)) #appends list for pdfmerge
我是编程新手,所以任何建议都会非常感激。
感谢您的时间和帮助。
附言。文件夹名称也是创建文件夹的时间,如果它有助于获得解决方案。
解决方案
你可以:
for dir in dirs:
if dir != finaldir:
continue
此外,您的 os.listdir() 可能是不必要的 - 您可以只遍历文件。
此外,如果您看到一个目录具有较深的层次结构,并且您知道您不想完全遍历,则可以将其从 dirs 中删除。
推荐阅读
- visual-studio - VS Code - OSS:将文件和文件夹下载到桌面
- c - 如何在 Linux 中检测服务停止
- asp.net - 由于 CORS 错误,无法从角度到后端进行 POST 请求
- android - Android 通过 BluetoothGatt 与 BLE 通信(读取/发送数据问题)
- docker - 如何将 DNS 条目添加到 Windows 容器的主机文件?
- amazon-web-services - 如何通过 AWS EC2 实例在浏览器中运行 Jupyter lab?
- typescript - rollupjs dist 不包含图像
- cmake - 是否可以使用带有安装依赖项的 cmake FetchContent
- security - 如何使用桌面安装安全地管理证书
- java - 具有自定义 where 条件的自引用 OneToOne