如何从Excel读取含内部逗号的分隔值并存入Python列表
解决方案
直接用Python内置的csv模块就能完美解决这个问题,它可以自动识别被单引号包裹的字段,即使字段内部包含逗号也能正确拆分。
代码实现
import csv from io import StringIO # 从Excel读取到的原始字符串 raw_str = "'a','b c','d','f,g'" # 将字符串转为类文件对象,供csv解析 with StringIO(raw_str) as buffer: # 配置csv读取规则:单引号作为字段包裹符,逗号作为分隔符,跳过字段前的空格 reader = csv.reader(buffer, quotechar="'", delimiter=',', skipinitialspace=True) # 读取第一行数据(因为你的字符串就是一行数据) target_list = next(reader) print(target_list) # 输出结果:['a', 'b c', 'd', 'f,g']
关键参数说明
quotechar="'":指定字段的包裹符号为单引号,让csv模块明确识别哪些内容属于同一个完整字段delimiter=',':指定字段之间的分隔符是逗号skipinitialspace=True:自动去掉逗号后面的空格,避免拆分后字段出现多余的前导空格(比如避免得到' b c'这类结果)
为什么不用正则?
正则表达式虽然也能实现类似效果,但如果后续数据出现更复杂的情况(比如字段内包含转义的单引号),正则的逻辑会变得非常复杂。而csv模块是Python专门为处理分隔符格式数据设计的,稳定性和通用性更强。
内容的提问来源于stack exchange,提问作者dartigan
相关产品推荐
相关产品推荐

