在搜索文本值时,是否有人有代码遍历目录和子目录?然后一旦发现返回python中的值?
答案 0 :(得分:1)
首先,os.walk()
返回遍历给定目录树的Python生成器。对于树中遇到的每个目录,生成器返回(dirpath, dirnames, filenames)
的3元组。您需要在循环中使用os.walk()
然后,内置的open()
函数用于返回file
对象,您可以从中读取文件的内容。 read()
会读取文件的完整内容,而readlines()
会一次读取一行。
假设您要查找的文本不能在多行上,以便一次一行处理文件是安全的,您可以按照以下方式执行操作:
import os
import re
matching_files = []
root = "/path/to/root/folder/you/want/to/walk"
# Navigate the directory structure starting at root
for root, dirs, files in os.walk(root):
# For each file in the current directory
for file_name in files:
# Reconstruct the full path
file_path = os.path.join(root, file_name)
# Open the file
with open(file_path, 'r') as f:
# Read the file one line at a time
for line in f.readlines():
# Look for your text in the current line
if re.findall(r'text_you_are_searching_for', line):
matching_files.append(file_path)
您可以在有关
的在线文档中获取更多详细信息答案 1 :(得分:1)
请阅读os.walk()
的文档,试一试,如果无法正常工作,请回来。
答案 2 :(得分:0)
要实现自己的grep,可以使用os.walk()
和一些基本文件I / O.在生成代码之前,我们需要有关具体要求的更多信息。