Python读取逗号分隔文件并创建两个List的问题
嘿,作为Python新手碰到这种问题真的太常见啦,我来帮你把思路理清楚,一步步解决~
首先咱们明确目标:把每行逗号前的内容收集到list1,逗号后的收集到list2对吧?那咱们可以这么来做:
核心思路
- 先初始化两个空列表,用来存数据
- 用安全的方式打开文件(避免忘记关闭),逐行读取
- 对每行做清理(去掉换行符、多余空格),再按逗号分割成两部分
- 把分割后的两部分分别加到对应的列表里,还要处理格式不对的行避免报错
完整代码示例
# 初始化两个空列表,用来存放数据 list1 = [] list2 = [] # 使用with语句打开文件,它会自动帮你关闭文件,不用手动写close() with open('你的文件名.txt', 'r') as file: # 逐行遍历文件里的内容 for line in file: # 先去掉每行末尾的换行符,同时清除前后的空格(比如有些行可能开头结尾有空格) cleaned_line = line.strip() # 如果是空行,直接跳过,避免后续处理出错 if not cleaned_line: continue # 按逗号把一行分割成两个部分 parts = cleaned_line.split(',') # 检查分割后是不是正好有两个元素,防止有些行格式不对(比如没逗号或者多个逗号) if len(parts) == 2: # 把每个部分再清一遍空格(比如逗号前后可能有空格),然后加入对应列表 list1.append(parts[0].strip()) list2.append(parts[1].strip()) else: # 可选:如果有格式错误的行,打印出来方便你排查问题 print(f"注意:这行格式有问题,已跳过 -> {cleaned_line}") # 打印结果看看是不是符合预期 print("List 1:", list1) print("List 2:", list2)
几个新手容易踩的坑
- 忘记处理换行符:直接读取的行末尾会带
\n,所以一定要用strip()清理 - 没考虑空格:有些行可能是
值1 , 值2这种,分割后会带空格,所以每个部分也要strip() - 没处理异常行:如果某行没有逗号,直接取
parts[0]和parts[1]会报错,所以要先检查分割后的长度 - 手动打开文件后忘记关闭:用
with语句就完美解决这个问题啦
你可以把代码里的你的文件名.txt换成你实际的文件名,运行试试~如果还有问题,看看控制台有没有打印格式错误的行,排查下那些行的内容就好啦
内容的提问来源于stack exchange,提问作者user330662
相关产品推荐
相关产品推荐

