簡體   English   中英

Python 3-如何在同一文件csv中寫入特定行?

[英]Python 3 - How to write specific row in same file csv?

我想在同一文件csv中更新一個名為“完成”的字段名

這是csv文件的結構:

輸入:

Email            Done
 1@gmail.com       
 2@gmail.com       
 3@gmail.com
 4@gmail.com

輸出:

Email            Done
 1@gmail.com       1
 2@gmail.com       1
 3@gmail.com       1
 4@gmail.com       1

我想要的樣子:

import csv
with open(r'E:\test.csv','r', encoding='utf-8') as f:
    reader = csv.DictReader(f,delimiter='|')

    for row in reader:
      #do something here#
      #then write "1" to filename "done"
f.close()

怎么做 ? 非常感謝你 ! :)

通過這樣的簡單更改,您可以使用一對簡單的讀寫文件。 讀取一行,然后立即將其寫回並添加。

In [6]: with open('test.csv','r') as input:
   ...:    with open('test1.csv','w') as output:
   ...:        header=input.readline()
   ...:        output.write(header)
   ...:        for line in input:
   ...:            output.write('%s %8d\n'%(line.strip(),1))

In [7]: cat test1.csv
Email            Done
1@gmail.com        1
2@gmail.com        1
3@gmail.com        1
4@gmail.com        1

您也可以使用csv讀取器和csv寫入器。 numpy用戶可能會想使用loadtxtsavetxt對,盡管在數組中混合字符串和數字值需要更多的專門知識。

在足夠新的Python中,您可以將兩個打開都與上下文放在一起:

with open('test.csv','r') as input, open('test1.csv','w') as output:
    ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM