如何用python替换特定列中csv文件中的单词

时间:2016-03-22 14:45:35

标签: python csv replace

美好的一天,

我尝试在csv文件中使用index更改某个列中的某个单词,但不会更改。

我尝试使用的代码:

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)

输出文件与输入相同,没有更改。

有些人可以用这种方式帮助我吗?非常感谢提前!

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

row[0].replace()不会替换行[0]中的任何内容。来自docstring:

  

S.replace(old,new [,count]) - >串

     

返回字符串S的副本,其中包含所有子字符串   老被新的取代。如果可选参数计数是   给定,只替换第一次计数。

如果您想更改row[0]的值,则需要row[0] = new_value之类的内容。