应用场景说明:有时我们会忘记自己将论文储存在哪个文件夹内,使用电脑自带的检索功能寻找通常速度较慢,会如下图所示的那样,加载许久才出现几个不相干文件。
现实中我们写论文时,通常会先将论文分类,会将不同类型的论文储存在一个文件夹的若干各下级文件夹内。如果直接在大磁盘(如D盘、C盘等)下搜索可能会出现若干无关文献,极度影响检索效率。
基于此,提出一种基于tkinter库和os库的解决方案:其作用机理是先用tk库的withdraw功能来获取目标文件夹路径,然后遍历该路径下所有文件,使用endwith函数分析文件结尾,如是.pdf则打印
附上伪代码流程:
- 导入 tkinter 和 filedialog 库,以及 os 库
- 创建一个 tkinter 应用程序窗口
- 隐藏窗口
- 打开文件夹选择器对话框,并返回所选择的文件夹路径
- 遍历文件夹下所有的文件和文件夹(包括子文件夹)
- 对于每一个文件,判断是否是以 ".pdf" 结尾的文件
- 如果是,输出文件的路径和名称
附上代码:
import tkinter as tk
from tkinter import filedialog
import os
# 创建一个tkinter应用程序窗口
root = tk.Tk()
root.withdraw()
# 打开文件夹选择器对话框,返回选择的文件夹路径
folder_path = filedialog.askdirectory()
# 遍历文件夹下所有的pdf文件,并打印出其名称和路径
for root, dirs, files in os.walk(folder_path):
for file in files:
if file.endswith(".pdf"):
print(os.path.join(root, file))