【发布时间】:2014-06-26 00:53:40
【问题描述】:
我有一个包含人员信息的 CSV 文件:
name,age,height
Maria,25,172
George,45,180,
Peter,23,179,
问题是一些字符串最后包含一个额外的逗号,而另一些则不包含(这是因为此信息是在另一个处理原始数据的 Python 脚本中使用 urlopen 从 Internet 获取的)。
我试图编写一些代码来解决这个问题,但我无法得到结果。我写的:
import re
data = open('file.csv').read()
new_data = re.sub('\W$', '', data)
print(new_data)
但此代码仅替换整个文档中的最后一个逗号。我试图写一个循环,计算所有行,然后分析每一行,但可能我的编码能力不是很好,我没有成功。请告诉我,我做错了什么。
【问题讨论】:
-
您可以很容易地使用
str.endswith(',') -
如果你确定逗号和行尾之间没有空格,你可以这样做:
new_data = data.replace(',\n', '\n') -
如果您确定空字段仅出现在末尾,您可以使用
[s for s in data.split(',') if len(s)]。