【发布时间】:2019-07-03 02:23:39
【问题描述】:
我正在解析一个 csv 文件并提取所有数据并根据引号将它们分开。 为简单起见,我从该文件中随机抽取一行
输入:
line = "'abc', 'sxy', 'lmo,por','zz'"
所需的输出:
abc
sxy
'lmo,por'
zz
所需输出中的第 3 行是我对代码感到厌烦的地方。如果我做一个 replace("'","") 那么我会丢失所有的引号并被分开。 我不确定如何在不丢失单引号的情况下将第 3 行值合并为其他值,而我需要为其他值去掉单引号 有没有一个python内置的字符串函数。
我不确定我可以为谁编写正则表达式,因为我对正则表达式解析非常陌生。
到目前为止我的代码:
line = "'abc', 'sxy', 'lmo,por','zz'"
def parse(line):
line = line.replace("'","")
a = line.split(',')
for word in a:
l.append(word)
print(l)
我知道这是非常微不足道的,但我无法解决它。 SO也没有类似的情况。 感谢任何可以帮助我的指针。
【问题讨论】:
-
所以你想在所有情况下都删除单引号,除非中间有逗号?
-
你能相信在分隔字符串的逗号后面有一个空格吗?例如
'abc',之后的逗号后有一个空格,但lmo和por之间没有空格 -
@puskin 是的,除非中间有逗号,否则我需要全部删除引号
-
csv 模块可能会处理它
-
@CharlieWindolf 我不能依赖空间,因为源文件是由第三方工具生成的,并且文件可能存在问题(空间可能不一致)
标签: python python-3.x