out/$pattern.txt 哪里$p-6ren">
gpt4 book ai didi

python - 如何使用python在指定模式的子目录的特定级别中查找具有给定扩展名的文件?

转载 作者:太空宇宙 更新时间:2023-11-03 20:27:41 25 4
gpt4 key购买 nike

在 bash 中,可以使用 grep 轻松完成,如下所示:

grep "$pattern" $directory/*/*/*/level4/*.txt* > out/$pattern.txt

哪里$pattern是模式,$directory是基本目录,我们仅在第四级子目录中查找名为 level4 的 .txt 文件。 。并且可能将输出重定向到具有模式名称本身的文件。这在 bash 中完美运行。 Python 中有简单的等价物吗?

我尝试迭代 $directory 中的所有子目录使用for subdir, dirs, files in os.walk , endswith & find但这会查看所有文件,而不是具有指定名称的第四级文件。

最佳答案

像这样:

import glob
import re

pattern = 'directory_name/*/*/*/level4/*.txt*'
regex = re.compile(r'.*test.*')

for filename in glob.glob(pattern):
with open(filename) as file_desc:
for line_num, line in enumerate(file_desc):
if not regex.match(line):
continue
output = '{}:{} {}'.format(filename, line_num, line)
print(output, end='')

关于python - 如何使用python在指定模式的子目录的特定级别中查找具有给定扩展名的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57712719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com