覆盖现有列表中的CSV文件的Python
问题描述:
我有一个CSV文件与球员属性:覆盖现有列表中的CSV文件的Python
['Peter Regin', '2', 'DAN', 'N', '1987', '6', '6', '199', '74', '2', '608000', '', '77', '52', '74', '72', '58', '72', '71', '72', '70', '72', '74', '68', '74', '41', '40', '51']
['Andrej Sekera', '8', 'SVK', 'N', '1987', '6', '6', '198', '72', '3', '1323000', '', '65', '39', '89', '78', '75', '70', '72', '56', '53', '56', '57', '72', '57', '59', '70', '51']
例如,我要检查,如果一个球员是一个中心(“2”在我的列表中的位置1 )后,我想修改12元素(这是彼得雷金'77')
我该怎么做,使用CSV模块?
import csv
class ManipulationFichier:
def __init__(self, fichier):
self.fichier = fichier
def read(self):
with open(self.fichier) as f:
reader = csv.reader(f)
for row in reader:
print(row)
def write(self):
with open(self.fichier) as f:
writer = csv.writer(f)
for row in f:
if row[1] == 2:
writer.writerows(row[1] for row in f)
里面做什么都不重要..
感谢,
答
一般情况下,CSV文件不能可靠地就地修改。
将整个文件读入内存(通常是列表清单,如您的示例),修改数据,然后将整个文件写回。
除非您的文件真的很大,并且您经常这样做,否则性能降低可以忽略不计。
+0
什么是最有效的方法。 所以我应该使用mmap模块? 或写在列表中?使用阅读器并追加? – 2013-05-14 00:39:11
+1
忘记效率,直到你达到正确的功能。做最简单的事情。我敢打赌,你的程序的瓶颈将在其他地方:) – 9000 2013-05-14 00:40:34
你能告诉我们你到目前为止的代码吗? – 2013-05-13 23:59:17