如何用BAT文件实现文本行数组化及与用户输入行数对比
实现思路与代码示例
下面以Python为例,一步步实现你需要的功能:
1. 将文本文件各行存入数组
通过文件读取操作,逐行读取文件内容并存储到列表(数组)中,同时处理每行末尾的换行符,避免干扰后续对比:
file_path = "your_file.txt" # 替换为你的文件路径 try: with open(file_path, 'r', encoding='utf-8') as f: # 去除每行末尾的换行符,存入列表 lines = [line.rstrip('\n') for line in f] except FileNotFoundError: print(f"错误:文件 {file_path} 不存在") exit()
2. 统计文件行数
因为列表的每个元素对应文件的一行,直接取列表长度就是文件的总行数:
line_count = len(lines) print(f"文件共有 {line_count} 行")
3. 用户输入与对应行内容对比
这里分两种常见场景实现:
场景一:输入行号,对比该行内容与输入内容
让用户输入目标行号,再输入要对比的内容,校验行号合法性后,直接取列表对应元素进行对比:
# 循环获取合法的行号输入 while True: try: input_line_num = int(input("请输入要对比的行号(从1开始):")) if 1 <= input_line_num <= line_count: break print(f"行号超出范围,请输入1到 {line_count} 之间的数字") except ValueError: print("请输入有效的整数行号") # 获取用户要对比的内容 input_content = input("请输入要对比的内容:") # 列表索引从0开始,行号需减1转换 target_content = lines[input_line_num - 1] if target_content == input_content: print(f"第 {input_line_num} 行内容与输入内容一致") else: print(f"第 {input_line_num} 行内容与输入内容不一致") print(f"文件该行内容:{target_content}") print(f"您输入的内容:{input_content}")
场景二:输入内容,查找该内容在文件中的对应行号
如果需要根据输入内容反查它在文件中的行号,可以遍历列表匹配内容:
input_content = input("请输入要查找的内容:") # 收集所有匹配内容的行号(从1开始计数) matching_line_nums = [i + 1 for i, line in enumerate(lines) if line == input_content] if matching_line_nums: print(f"匹配内容的行号:{', '.join(map(str, matching_line_nums))}") else: print("文件中未找到该内容")
内容的提问来源于stack exchange,提问作者ValComputers
相关产品推荐
相关产品推荐

