下面是Python基于文件内容实现查找文件功能的完整攻略:
1. 实现思路
要实现基于文件内容的查找文件功能,需要通过以下步骤进行实现:
- 用户输入文件路径和需要查找的关键词;
- 打开文件,逐行读取文件内容;
- 判断当前行是否包含关键词,若包含则输出文件路径及当前行;
- 继续逐行读取文件内容,直至到达文件末尾。
2. 代码实现
下面是一个简单的Python代码实现。用户需要输入文件路径和需要查找的关键词,程序会逐行读取文件内容,查找包含关键词的行并输出文件路径及当前行:
import os
def search_file(file_path, keyword):
with open(file_path, 'r', encoding='utf-8') as f:
lines = f.readlines()
for i, line in enumerate(lines):
if keyword in line:
print('{}:{}'.format(os.path.abspath(file_path), i+1), line.strip())
def search_folder(folder_path, keyword):
for file in os.listdir(folder_path):
file_path = os.path.join(folder_path, file)
if os.path.isdir(file_path):
search_folder(file_path, keyword)
elif os.path.isfile(file_path):
search_file(file_path, keyword)
if __name__ == '__main__':
folder_path = input('请输入要查找的文件夹路径:')
keyword = input('请输入要查找的关键词:')
search_folder(folder_path, keyword)
在上面的代码中,我们还实现了一个查找文件夹下所有文件的方法 search_folder()
。该方法会对文件夹下的所有文件逐个调用 search_file()
方法,以实现查找功能。下面是一个示例:
假设我们要查找 D:\test\
文件夹下所有文件中包含 hello
关键词的文件和行数,可以执行以下命令:
folder_path = 'D:\test'
keyword = 'hello'
search_folder(folder_path, keyword)
3. 示例说明
以查询json文件为例,比如我们要查询当前文件路径下json文件中是否包含 age
属性,我们可以自定义这样一个json文件,比如文件名为 sample.json
,文件内容如下:
{
"name": "张三",
"age": 18,
"sex": "男"
}
然后,我们将 sample.json
和查找文件的Python脚本放在同一目录下,并执行以下命令:
search_file('sample.json', 'age')
程序会输出 sample.json
文件的路径及包含 age
属性的那一行。
另外,我们也可以选择对文件夹进行查找,比如我们要查找 D:\test\
文件夹下所有文件中包含 hello
关键词的文件和行数:
search_folder('D:\test', 'hello')
以上就是基于文件内容实现查找文件功能的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python基于文件内容实现查找文件功能 - Python技术站