打印文件名

Mic*_*mon 9 python python-3.x

我是新手python,刚刚安装Eric6 我想要搜索一个文件夹(和所有子目录)来打印任何扩展名为.pdf I 的文件的文件名作为我的语法,但它错误说

调试程序引发异常未处理的FileNotFoundError
"[WinError 3]系统找不到指定的路径'C:'"
文件:C:\ Users\pcuser\EricDocs\Test.py,Line:6

这是我想要执行的语法:

import os

results = []
testdir = "C:\Test"
for folder in testdir:
  for f in os.listdir(folder):
    if f.endswith('.pdf'):
        results.append(f)

print (results)
Run Code Online (Sandbox Code Playgroud)

Inb*_*ose 12

使用该glob模块.

glob模块查找与指定模式匹配的所有路径名

import glob, os
parent_dir = 'path/to/dir'
for pdf_file in glob.glob(os.path.join(parent_dir, '*.pdf')):
    print (pdf_file)
Run Code Online (Sandbox Code Playgroud)

这适用于Windows和*nix平台.


只需确保您的路径在Windows上完全转义,对使用原始字符串很有用.

在你的情况下,那将是:

import glob, os
parent_dir = r"C:\Test"
for pdf_file in glob.glob(os.path.join(parent_dir, '*.pdf')):
    print (pdf_file)
Run Code Online (Sandbox Code Playgroud)

对于文件名列表(不是完整路径,根据您的评论),您可以执行以下操作:

results = [os.path.basename(f) for f in glob.glob(os.path.join(parent_dir, '*.pdf')]
Run Code Online (Sandbox Code Playgroud)