如何获取文件中不含指定字符的行号并按行识别不同字符?
需求一:识别不包含指定字符/字符串的行号
遍历文件时同步记录行号,判断目标内容是否不在当前行中即可实现,代码示例:
target = "0" # 替换为你需要检测的字符或字符串 missing_line_nums = [] with open("filename.txt", "r") as in_file: # enumerate(start=1)让行号从1开始计数,符合日常阅读习惯 for line_num, line in enumerate(in_file, start=1): if target not in line: missing_line_nums.append(line_num) print(f"不包含'{target}'的行号:{missing_line_nums}")
需求二:按行识别不同的字符
如果需要提取每行中的唯一字符集合,可以利用集合自动去重的特性;若要保留字符的出现顺序,可借助字典的有序性(Python 3.7+支持):
方案1:获取无序的唯一字符
with open("filename.txt", "r") as in_file: for line_num, line in enumerate(in_file, start=1): # strip()去除换行符和首尾空白,按需可移除该操作 unique_chars = set(line.strip()) print(f"第{line_num}行的不同字符:{sorted(unique_chars)}")
方案2:按出现顺序获取唯一字符
with open("filename.txt", "r") as in_file: for line_num, line in enumerate(in_file, start=1): cleaned_line = line.strip() # dict.fromkeys会按字符出现顺序保留唯一值 unique_chars_ordered = list(dict.fromkeys(cleaned_line)) print(f"第{line_num}行的不同字符(按出现顺序):{unique_chars_ordered}")
内容的提问来源于stack exchange,提问作者Crypto Escrow
相关产品推荐
相关产品推荐

