使用Python在文件夹内查找指定文本

有天策划童鞋说,这个版本我删掉了几个道具,你看看我有没有删漏?

我一看,这几个道具,征战可能会掉,宝箱可能会出,有些任务可能会奖励,好几种途径可能会获得。

怎么检查呢?

方式1:整理各种可能获得这些道具的途径,在游戏内一一确认。这个方式,耗时久,而且遗漏的可能性比较高。

方式2:检查前后端相关的配置表里边,是否已经删除了这几个道具相关的配置。这个方法靠谱很多。但是配置表几十个,要一个一个看?

作为一个懒人兼Py大法的爱好者。于是有了下边这个从文件夹中,自动查找关键字的小工具,源码很短,不到50行。

开发环境:Python3.5+Win10+Pycharm

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import os
def get_files_by_suffix(path, suffixes=("txt", "xml"), traverse=True):
"""从path路径下,找出全部指定后缀名的文件,支持1层目录,或者整个目录遍历
:param path: 根目录
:param suffixes: 指定查找的文件后缀名
:param traverse: 如果为False,只遍历一层目录
:return:
"""
file_list = []
for root, dirs, files in os.walk(path):
for file in files:
file_suffix = os.path.splitext(file)[1][1:].lower() # 后缀名
if file_suffix in suffixes:
file_list.append(os.path.join(root, file))
if traverse:
return file_list
return file_list
if __name__ == '__main__':
path = r"C:\Project\config\branches\config-1.4"
search_word = "神器"
files = get_files_by_suffix(path, ["txt", "xml"], traverse=False)
for file in files:
try:
with open(file, 'r', encoding='utf-8', errors='ignore') as f:
file_content = f.read()
position = file_content.find(search_word)
if position != -1:
print("find in {0}".format(file))
print(file_content[position-100:position+100])
print("_"*150)
except Exception as e:
print(e)
print(file)
print("#"*150)