不确定如何将文本写入csv文件中的特定列。

时间:2018-01-30 15:24:15

标签: python python-2.7 csv

嘿,我正在研究这个项目,我将这个文本翻译出来并将其存储回同一个CSV文件中。下一个打开的列位于索引10或列K.我一直在尝试编写数据,但我无法得到它。

阅读工作正常。我尝试将所有这些做到单个while循环但我无法让它工作。对不起任何格式错误!

from googletrans import Translator
import csv

translater = Translator()
f = open("@ElNuevoDia.csv", "r+")
csv_f = csv.reader(f)
csv_wf = csv.writer(f)
tmp = {}
x = 0

for row in csv_f:
    tmp[x] = translater.translate(row[4], dest="en")
    #print(tmp[x].text)
    #print("\n")
    #print(tmp[x].text)
    x = x + 1
x = 0
f.close()
csv_wf = csv.writer(f)

for row in csv_wf:
        csv_wf[10].writerow(tmp[x].text)
f.close()

1 个答案:

答案 0 :(得分:0)

您应该更新阅读器中的行,然后将其写回(正如您在评论中提到的那样,编写器不可迭代)。类似的东西(代码的一部分):

for row in csv_f:
    row[10] = translater.translate(row[4], dest="en")
    tmp[x] = row
    x = x + 1
x = 0
f.close()
csv_wf = csv.writer(f)

for row in tmp:
        csv_wf.writerow(row)
f.close()

修改1:

对于文本变量,您可以这样做:

row[10] = translater.translate(row[4], dest="en").text

你可以一步写回来:

csv_wf.writerows(tmp)