gpt4 book ai didi

python - 如何在python中递归搜索文件中的字符串

转载 作者:太空宇宙 更新时间:2023-11-04 01:02:58 24 4
gpt4 key购买 nike

我试图在我的 C:\ 中找到所有日志文件,然后在这些日志文件中找到一个字符串。如果找到该字符串,则输出应该是找到该字符串的日志文件的绝对路径。以下是我到目前为止所做的。

import os
rootdir=('C:\\')
for folder,dirs,file in os.walk(rootdir):
for files in file:
if files.endswith('.log'):
fullpath=open(os.path.join(folder,files),'r')
for line in fullpath.read():
if "saurabh" in line:
print(os.path.join(folder,files))

最佳答案

您的代码在以下位置损坏:

for line in fullpath.read():

fullpath.read() 语句将整个文件作为一个字符串返回,当您遍历它时,您将一次遍历一个字符。您永远不会在单个字符中找到字符串“saurabh”。

文件是它自己的行迭代器,因此只需将此语句替换为:

for line in fullpath:

此外,为了清洁起见,您可能希望在完成后关闭文件,无论是显式关闭还是使用 with 语句。

最后,您可能希望在找到文件时中断,而不是多次打印同一个文件(如果您的字符串多次出现):

import os
rootdir=('C:\\')
for folder, dirs, files in os.walk(rootdir):
for file in files:
if file.endswith('.log'):
fullpath = os.path.join(folder, file)
with open(fullpath, 'r') as f:
for line in f:
if "saurabh" in line:
print(fullpath)
break

关于python - 如何在python中递归搜索文件中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31963471/

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