我们逐行解释这段代码:
-
search_text = input("你要搜索的字段:")
:这行代码提示用户输入要搜索的字段,并将用户输入的内容保存在变量search_text
中。 -
files = ["1.txt", "2.txt", ... , "12.txt"]
:这行代码定义了一个列表files
,包含了要搜索的文件名。 -
for file_name in files:
:这行代码开始一个循环,遍历files
列表中的每一个文件名。 -
with open(file_name, "r", encoding="utf-8") as file:
:这个with
语句用于打开当前循环中的文件名指定的文件,以只读模式(“r”)和UTF-8编码格式。这样做的好处是在代码块执行完毕后,文件会被自动关闭。 -
for line_number, line in enumerate(file, start=1):
:这行代码开始另一个循环,逐行读取文件内容。enumerate
函数用于同时获取行号和行内容,start=1
参数指定行号从1开始计数。 -
if search_text in line:
:这个条件判断语句检查当前行line
是否包含search_text
。 -
print(f"Line {line_number} in file '{file_name}': {line.strip()}")
:如果search_text
在当前行中,这行代码将打印出文件的名称、行号以及该行的内容。line.strip()
用于移除行首尾的空白字符。 -
print("Search complete.")
:在所有文件遍历完成后,打印出“Search complete.”,表示搜索完成# 定义要搜索的字段 search_text = input("你要搜索的字段:") # 文件列表 files = ["1.txt", "2.txt", "3.txt", "4.txt", "5.txt", "6.txt", "7.txt", "8.txt", "9.txt", "10.txt", "11.txt", "12.txt"] # 遍历文件列表 for file_name in files: # 打开文件 with open(file_name, "r", encoding="utf-8") as file: # 逐行读取文件 for line_number, line in enumerate(file, start=1): # 检查当前行是否包含要搜索的字段 if search_text in line: # 打印文件名和行号 print(f"Line {line_number} in file '{file_name}': {line.strip()}") print("Search complete.")