Python实现从文本文件提取列表并统计列表数量
解决方案
方法一:基于你已读取的字符串处理
如果你已经把整个文件内容读入了data变量,可以按以下步骤处理:
1. 分割出所有列表行
将字符串按换行符拆分,同时过滤掉空行(避免文件末尾空行干扰统计):
# 分割成每行并过滤空行 list_lines = [line.strip() for line in data.split('\n') if line.strip()]
2. 统计列表总数
直接取分割后列表的长度即可:
total_lists = len(list_lines) print(f"列表总数:{total_lists}")
3. 逐个提取并转换为可操作的Python列表
遍历每一行,去掉首尾的[]符号,拆分出数字字符串后转换为整数列表:
processed_lists = [] for line in list_lines: # 去除首尾括号并拆分数字字符串 num_strings = line.strip('[]').split(',') # 转换为整数列表 num_list = [int(num) for num in num_strings] processed_lists.append(num_list) # 示例:遍历第一个列表的元素 for num in processed_lists[0]: print(num)
方法二:逐行读取(适合超大型文件)
如果文件体积很大,一次性读入内存会占用过多资源,推荐用逐行读取的方式,同时完成统计和提取:
processed_lists = [] total_lists = 0 # 用with语句自动管理文件关闭,更安全高效 with open("R1E1.txt", "r") as my_file: for line in my_file: line = line.strip() if not line: continue # 跳过空行 total_lists += 1 # 转换为整数列表 num_strings = line.strip('[]').split(',') num_list = [int(num) for num in num_strings] processed_lists.append(num_list) print(f"列表总数:{total_lists}") # 后续可直接对processed_lists进行业务处理
额外提示
- 如果文件中存在列表跨行的极端情况,需要通过匹配
[和]的成对出现来处理,但从你的示例来看,每个列表单独一行,上述方法完全适用。 - 若文件中存在非数字的异常内容,可添加异常处理避免程序崩溃:
try: num_list = [int(num) for num in num_strings] except ValueError as e: print(f"处理行出错:{line},错误信息:{e}") continue
内容的提问来源于stack exchange,提问作者Mohsen Ali
相关产品推荐
相关产品推荐

