我正在使用Glob.Glob
来搜索文件夹,并在那里找到我所有发票的子文件夹。为了简化这一点,我将把程序添加到上下文菜单中,并将路径作为第一部分,
import glob
for filename in glob.glob(path + "/**/*.pdf", recursive=True):
print(filename)
我会保留列表并将这些文件发送到打印机,在更高版本中,但是现在只需编写名称就足够了。
所以我的问题有两个:
答案 0 :(得分:1)
您应该看一下这个问题:Python script on selected file。它显示了如何设置"发送到"上下文菜单中的命令。此命令调用python脚本,并提供通过sys.argv[1]
发送的文件名。我认为这也适用于目录。
答案 1 :(得分:0)
我没有Python3.5,因此我可以设置标志recursive=True
,因此我更愿意为您提供一个可以在任何Python版本上运行的解决方案(已知为一天)。
解决方案包括使用调用os.walk()
来运行浏览目录和set
内置类型。
最好使用set而不是list,稍后您需要更多代码来检查您要添加的目录是否已经列出。
所以基本上你可以保留两组:一组用于你要打印的文件名,另一组用于目录及其子文件夹。
因此,您可以将此解决方案适用于您的班级/方法:
import os
path = '.' # Any path you want
exten = '.pdf'
directories_list = set()
files_list = set()
# Loop over direcotries
for dirpath, dirnames, files in os.walk(path):
for name in files:
# Check if extension matches
if name.lower().endswith(exten):
files_list.add(name)
directories_list.add(dirpath)
然后,您可以循环directories_list
和files_list
将其打印出来。