给出一个简单的CSV文件是这样的:Python和CSV;如何截断列中的所有值?
Django,Gunslinger,101-707
KingSchultz,Dentist,205-707
Tatum,Marshall,615-707
Broomhilda,Wife,910-707
...,...,...
你如何截断在最后一列中的所有值,以便只有前三位依然? (无关:这样他们就可以在数学运算中使用)
期望CSV:
Django,Gunslinger,101
KingSchultz,Dentist,205
Tatum,Marshall,615
Broomhilda,Wife,910
...,...,...
这里是我到目前为止已经试过:
import csv
import re
r = csv.reader(open(input.csv))
for row in r:
re.sub('\-.*', '', row[3])
writer = csv.writer(open('output.csv', 'w'))
writer.writerow(row)
我在re.sub
验证regex
正常工作。已经尝试了几十个变体,搜索了很多小时,但无法获得所需的输出。
测试了Python 2.7.6和3.4.3的工作。谢谢@ praba230890。我编辑了答案,以包含一个简单的错误,可能会让Python 3.4.3上的其他人感到困惑。 – TigerRedMike
你能解释'[:3]'的语法吗? – TigerRedMike
它是字符串切片,[:3]切片字符串的前3个字符并返回它。看看https://docs.python.org/3/tutorial/introduction.html#strings – praba230890