如何打开当前目录下的所有.txt和.log文件,搜索并打印找到的文件

7 投票
3 回答
21678 浏览
提问于 2025-04-16 16:26

我想在当前文件夹里的所有文本文件和日志文件中搜索一个字符串。如果找到了匹配的内容,就打印出找到匹配的那个文本文件或日志文件。请问这可能吗?我该如何修改下面的代码来实现这个任务呢?

  fiLe = open(logfile, "r")
  userString = raw_input("Enter a string name to search: ")
  for line in fiLe.readlines():
      if userString in line:
         print line

3 个回答

2

你一定要用Python来做这个吗?如果不是的话,直接用 grep -l "string" *.txt *.log 这个命令就可以了。

3

他要求的是一个平坦的文件列表,而不是递归地遍历整个文件树。可以用os.listdir()来完成这个任务。

18

像这样:

import os
directory = os.path.join("c:\\","path")
for root,dirs,files in os.walk(directory):
    for file in files:
       if file.endswith(".log") or file.endswith(".txt"):
           f=open(file, 'r')
           for line in f:
              if userstring in line:
                 print "file: " + os.path.join(root,file)             
                 break
           f.close()

撰写回答