2016-03-22 31 views
1

良好的一天,在更换指定的列在CSV文件中一个字,如何使用Python

我试图改变一个单词在某列,使用指数,CSV文件,但它不会改变。

我的代码,我试图用:

import csv 

with open('INPUT.CSV', 'r') as file1, open('OUTPUT.csv','w',newline='') as file2: 
    reader = csv.reader(file1, delimiter=',') 
    writer = csv.writer(outfile, delimiter=',') 

    for row in reader: 
     row[0].replace('word','changed word')# I want to replace in first column=row[0] 'word' with 'changed word' 
     writer.writerow(row) 

输出文件是用相同的投入,没有改变。

someboby可以帮助我吗?非常感谢提前!

回答

0

工作示例会更好(输出为file2开放,但笔者给出outfile

但在任何情况下,你的问题是replace

  • replace返回字符串的复印件(更换如果标准匹配,则为文本)

但是,您放弃了返回的值。你实际上是改变row[0]

解决什么:

replaced = row[0].replace('word','changed word') # I want to replace in first column=row[0] 'word' with 'changed word' 
row[0] = replaced 
writer.writerow(row) 
+0

谢谢@mementum您的解决方案...我试着用它的代码,但它似乎只是在特定行(行[x])中进行更改,它会取代所有找到的匹配...可以用这种方式做点什么? –

0

row[0].replace()不能取代任何行[0]。从文档字符串:

S.replace(旧的,新[,计数]) - >字符串

返回字符串S的通过更换新的子 老出现的所有副本。如果可选参数计数为 ,则只会替换第一个计数事件。

如果你想改变row[0]的值,你需要类似row[0] = new_value