import os import codecs def search_files(rootdir, keyword): for filename in os.listdir(rootdir): filepath = os.path.join(rootdir, filename) if os.path.isdir(filepath): search_files(filepath, keyword) else: try: with codecs.open(filepath, 'r', encoding='utf-8') as f: content = f.read() if keyword in content: print("包含 '{0}' 文字的文件路径: '{1}'".format(keyword, filepath)) except UnicodeDecodeError: #print("Error decoding file '{0}'".format(filepath)) print("",end='') adress = "D:\liziqian20221128\C\qtYuanDaiMa\ToolManageSystem" key = "" print("--"*20+"下面是包含关键词\"" + key + "\"文件路径") search_files(adress,key) 在这段代码中添加查到的文件文字中的行数
时间: 2024-01-12 09:03:24 浏览: 143
可以在代码中添加一个计数器,每次读取文件时,遍历文件的每一行,如果包含关键词,则计数器加1,最后输出包含关键词的文件路径以及该文件中包含关键词的行数。
修改后的代码如下:
```python
import os
import codecs
def search_files(rootdir, keyword):
for filename in os.listdir(rootdir):
filepath = os.path.join(rootdir, filename)
if os.path.isdir(filepath):
search_files(filepath, keyword)
else:
try:
with codecs.open(filepath, 'r', encoding='utf-8') as f:
content = f.readlines()
count = 0
for line in content: # 遍历文件的每一行
if keyword in line:
count += 1
if count > 0: # 如果该文件包含关键词
print("包含 '{0}' 文字的文件路径: '{1}',行数为:{2}".format(keyword, filepath, count))
except UnicodeDecodeError:
#print("Error decoding file '{0}'".format(filepath))
print("",end='')
adress = "D:\liziqian20221128\C\qtYuanDaiMa\ToolManageSystem"
key = "关键词"
print("--"*20+"下面是包含关键词\"" + key + "\"文件路径和行数")
search_files(adress,key)
```
这样就可以输出包含关键词的文件路径以及该文件中包含关键词的行数了。
阅读全文