Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我如何寻找“百分比”d、 txt";文件夹?_Python_Python 3.x - Fatal编程技术网

Python 我如何寻找“百分比”d、 txt";文件夹?

Python 我如何寻找“百分比”d、 txt";文件夹?,python,python-3.x,Python,Python 3.x,我有很多档案被命名为“1.txt”、“2.txt”等等。我只想得到这些文件 我试着用这个,但没用 path = r'c:\foo\foo' dirs = os.listdir(path) files = [] for r, d, f in os.walk(path): for file in f: if '.txt' in file: files.append(os.path.join(r, file)) for f in files:

我有很多档案被命名为“1.txt”、“2.txt”等等。我只想得到这些文件

我试着用这个,但没用

path = r'c:\foo\foo'
dirs = os.listdir(path)
files = []

for r, d, f in os.walk(path):
    for file in f:
        if '.txt' in file:
            files.append(os.path.join(r, file))

for f in files:
    with open(f, 'r') as text:
        fline = text.readlines()
        with open(f, 'r') as file:
            if '%d.txt' in f:
                print(f)
使用正则表达式

在您的示例中,您正在比较字符串'\d.txt',该字符串将始终返回false

试试这个

import os
import re
path = r'C:\Roshan\stackoverflow\tr'
dirs = os.listdir(path)
files = []

for r, d, f in os.walk(path):
    for file in f:
        if '.txt' in file:
            files.append(os.path.join(r, file))

for f in files:
    with open(f, 'r') as text:
        fline = text.readlines()
        with open(f, 'r') as file:
            if re.findall('\d\.txt',f):
                print(f)


请记住:您的代码可以通过先只读取所需文件,然后再读取内容来优化。这只是一个建议

正如roshan提到的,好的,你可以使用正则表达式。
此外,如果您对使任务变得通用感兴趣,那么将来您所要做的就是传递模式和路径,您可以研究这种方法:

您可以查看正则表达式以查找名称与给定模式匹配的文件。
glob.glob('[0-9].txt')
。您可能还需要几个数字,但您可以将不同的glob调用连接起来,每个调用都有不同的模式。这样做会更简单,因为这样做不需要使用正则表达式。同意您的看法。glob.glob()更简单、更快