如何在Python中将多行文本转为逗号分隔列表且无需使用csv模块?
问题描述
我有如下多行文本数据:
1800000000001 1000000000001 4200000000001 4000000000011 .... .... .... 0400000000011 6420000000000 8660000000000
希望在Python中读取该文本并将其转换为指定格式的列表,需完成以下步骤:
- 读取文本数据
- 将文本格式化为字符串并转换为逗号分隔的列表形式
期望最终输出为:
l = ['1800000000001', '1000000000001', '4200000000001', '4000000000011'.....]
请问是否可以不使用csv模块实现该需求?
解决方案
完全可以不用csv模块实现,靠Python基础的文件操作和字符串处理就能搞定,具体实现方式如下:
场景一:从本地文件读取数据
- 用
open()函数打开目标文件,通过read()获取全部文本内容 - 调用
splitlines()按行分割内容,自动适配不同操作系统的换行符,直接得到目标列表
示例代码:
# 读取文件并生成列表 with open('你的文件名.txt', 'r', encoding='utf-8') as f: l = f.read().splitlines() # 输出查看结果 print(l)
场景二:处理已有的字符串格式数据
如果文本已经是字符串变量形式,直接用换行符分割后过滤空行即可:
text_data = """1800000000001 1000000000001 4200000000001 4000000000011 .... .... .... 0400000000011 6420000000000 8660000000000""" # 分割并过滤空行,避免列表出现空字符串元素 l = [line.strip() for line in text_data.split('\n') if line.strip()] print(l)
补充说明
splitlines()相比直接用split('\n')更稳妥,能自动处理\r\n(Windows换行符)、\n(Unix/Linux换行符)等不同格式- 列表推导式里的
strip()和判断条件是为了清理文本中可能存在的空行或首尾空格
内容的提问来源于stack exchange,提问作者kms
相关产品推荐
相关产品推荐

