【发布时间】:2014-12-03 21:21:27
【问题描述】:
我有一个如下所示的 CSV 文件
a,b,c
d1,g4,4m
t,35,6y
mm,5,m
我正在尝试分别用“月”和“年”替换所有前面带有数字的 m 和 y。我正在使用以下脚本。
import re,csv
out = open ("out.csv", "wb")
file = "in.csv"
with open(file, 'r') as f:
reader = csv.reader(f)
for ss in reader:
s = str(ss)
month_pair = (re.compile('(\d\s*)m'), 'months')
year_pair = (re.compile('(\d\s*)y'), 'years')
def substitute(s, pairs):
for (pattern, substitution) in pairs:
match = pattern.search(s)
if match:
s = pattern.sub(match.group(1)+substitution, s)
return s
pairs = [month_pair, year_pair]
print (substitute(s, pairs))
它确实替换,但它只在最后一行替换,忽略它之前的那些。如何让它遍历所有行并写入另一个 csv 文件?
【问题讨论】: