Python 我如何寻找“百分比”d、 txt";文件夹?
我有很多档案被命名为“1.txt”、“2.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:
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()更简单、更快