我对python
很新,刚安装Eric6
我想搜索文件夹(和所有子目录)以打印任何扩展名为{{1}的文件的文件名我有这个作为我的语法,但它错误说
调试程序引发异常未处理的FileNotFoundError
“[WinError 3]系统无法找到指定的路径'C:'”
文件:C:\ Users \ pcuser \ EricDocs \ Test.py,Line:6
这是我想要执行的语法:
.pdf
答案 0 :(得分:9)
使用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)
这适用于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)
仅针对文件名列表(不是完整路径,根据您的评论),您可以执行以下操作:
results = [os.path.basename(f) for f in glob.glob(os.path.join(parent_dir, '*.pdf')]
答案 1 :(得分:4)
现在,您搜索testdir变量中的每个字符串。
所以它在文件夹中搜索值" C",":"," \"," T&#34 ;你也想要逃脱你的逃脱角色,例如" C:\ ... \ ... \"
您可能改为使用os.listdir(testdir)。
答案 2 :(得分:2)
您的代码中存在一些问题,请查看我在下面对其进行修改的方法:
variable name : GRADLE_USER_HOME
value of variable : E:\repos\gradle
请注意,我已经转义了您的路径名,并删除了您的第一个import os
results = []
testdir = "C:\\Test"
for f in os.listdir(testdir):
if f.endswith('.pdf'):
results.append(f)
print (results)
。这不是按预期获取文件夹,而是一次选择一个路径字符串的字符。
您需要修改代码才能让它查看所有文件夹,但目前没有。看一下glob模块。
答案 3 :(得分:2)
尝试从C:
运行Python脚本。从命令提示符,您可能想要这样做:
> cd C:\
> python C:\Users\pcuser\EricDocs\Test.py
正如Tony Babarino指出的那样,在代码中使用r"C:\Test"
代替"C:\Test"
。
答案 4 :(得分:2)
您需要在Windows上转义反斜杠,并且可以使用os.walk获取所有pdf文件。
for root,dirs,files in os.walk(testdir):
for f in files:
if f.endswith('.pdf'):
results.append(f)
print (results)
答案 5 :(得分:2)
您基本上是使用第一个testdir
循环遍历字符串for
,然后将每个字符传递给os.listdir(folder)
没有任何意义,只需删除第一个for
循环并使用fnmatch
模块中的fnmatch
方法:
import os
from fnmatch import fnmatch
ext = '*.pdf'
results = []
testdir = "C:\Test"
for f in os.listdir(testdir):
if fnmatch(f, ext):
results.append(f)
print (results)
答案 6 :(得分:1)
尝试使用testdir = r"C:\Test"
代替testdir = "C:\Test"
。在python中你必须转义特殊字符,例如\
。您也可以使用符号'\'来转义它们,因此它将是"C:\\Test"
。通过使用r"C:\Test"
,您告诉python使用 raw 字符串。
同样for folder in testdir:
行也没有意义,因为testdir
是一个字符串,所以你基本上试图迭代一个字符串。
答案 7 :(得分:0)
我不得不提到$arrVals = array_values($1JANATAMF)
foreach($arrVals as $value){
// Use Html To Create Table and add $value to columns
}
模型的训练图像的名称,
这是我打印要保留用于训练Yolo
模型的所有图像的名称的步骤
YoloV3
它会打印出当前目录中的所有文件名