从以特定字符开头的目录中获取文件

时间:2019-10-04 11:09:33

标签: python

我有此路径c:\testfolder\myfolder\

在这个文件夹中,我得到了以下文件夹:

gr432d4dr
fr34q2sf4fd
grdddxwes
pl34scc
us4352fc
us4245
gr00mis
us994k

这些文件夹中包含 cpp 个文件。

我只想从以 gr 我们

开头的文件夹中搜索

这是我的代码,试图搜索特定的文件夹:

def search():
    for filename in Path('c:\testfolder\myfolder\').glob('**/*.cpp') :  
        with open(filename) as f:  
            if "gr" or "us" in f:
              #do something

我打印了一张照片,但似乎仍在检查所有文件夹

1 个答案:

答案 0 :(得分:1)

f不是文件名,而是允许您访问文件内容的文件对象资源。打开文件之前,您必须检查文件名。

def search():
    for filename in Path(r'c:\testfolder\myfolder\').glob('**/*.cpp') :  
        if "gr" in os.fspath(filename) or "us" in os.fspath(filename):
            with open(filename) as f:  
              #do something

您需要os.fspathPath对象取回字符串,才能使用in运算符在字符串中搜索子字符串。
还要注意我编辑的if条件。应该这样写。