Python csv writer / rewrite /overwrite 一行或删除所有行并添加一个新行
Python csv writer / rewrite /overwrite a row or delete all the rows and add a new one
我每 60 秒创建并打开一个 csv 文件:
我打开 csv -> csv = csv.writer(csvOpen, dialect='excel')
并在其中写入一个新行 -> csv.writerow([value1,value2,value3])
我的第 1 行确实有 headers,所以我想每次都用新值覆盖第二行。甚至可以修改 csv 吗?我想:
writerow 语法在每次执行时都会给我添加一个新行。
我可以在写完后删除该行吗?或者决定我要在哪一行写下我的值?
我真的不想每 60 秒删除一次文件并创建一个新文件。我不确定这是否适合树莓派中的 SD 卡 :)
谢谢!
我找到了几个帖子,但我想不通:(请不要指责/lmgtfy 链接....
如果您总是只想要两行,您可以使用 w
模式打开用于写入 csv 数据的文件,这会覆盖该文件,然后使用 writerows()
而不是 writerow()
写入多行,然后作为 writerows()
函数的参数,您可以传递列表列表,第一个子列表是 headers,第二个是实际行。
例子-
import csv
csvOpen = open('filename','w')
c = = csv.writer(csvOpen, dialect='excel')
c.writerows([[header1,header2,heaer3],[value1,value2,value3]])
请注意不要使用 csv
作为变量名,因为它会覆盖您对 csv
的导入。
扩展 Anand S Kumar 的 post
import csv
csvOpen = open('filename','w')
c = = csv.writer(csvOpen, dialect='excel')
c.writerows([[header1,header2,heaer3],[value1,value2,value3]])
这里可以而且应该有一些东西。
添加一个 csvOpen.close() 来关闭文件流本身,但这不是最佳做法。
我认为您应该使用 with open,如果您这样做,文件本身将自动关闭。
import csv
with open('filename','w') as csvOpen:
c = = csv.writer(csvOpen, dialect='excel')
c.writerows([[header1,header2,heaer3],[value1,value2,value3]])
或者简单地将 csvOpen.close() 添加到 Anand 提交的 OG 答案中。希望我能帮助一些能力欢呼和快乐的键盘杀手!
补充说明:
文件上的 'w' 模式会截断文件本身,如果你想追加使用模式 'ab' 在我看来这通常是最好的。通常即使在 'write' 模式下我仍然使用 'wb'
我每 60 秒创建并打开一个 csv 文件:
我打开 csv -> csv = csv.writer(csvOpen, dialect='excel')
并在其中写入一个新行 -> csv.writerow([value1,value2,value3])
我的第 1 行确实有 headers,所以我想每次都用新值覆盖第二行。甚至可以修改 csv 吗?我想: writerow 语法在每次执行时都会给我添加一个新行。 我可以在写完后删除该行吗?或者决定我要在哪一行写下我的值?
我真的不想每 60 秒删除一次文件并创建一个新文件。我不确定这是否适合树莓派中的 SD 卡 :)
谢谢!
我找到了几个帖子,但我想不通:(请不要指责/lmgtfy 链接....
如果您总是只想要两行,您可以使用 w
模式打开用于写入 csv 数据的文件,这会覆盖该文件,然后使用 writerows()
而不是 writerow()
写入多行,然后作为 writerows()
函数的参数,您可以传递列表列表,第一个子列表是 headers,第二个是实际行。
例子-
import csv
csvOpen = open('filename','w')
c = = csv.writer(csvOpen, dialect='excel')
c.writerows([[header1,header2,heaer3],[value1,value2,value3]])
请注意不要使用 csv
作为变量名,因为它会覆盖您对 csv
的导入。
扩展 Anand S Kumar 的 post
import csv
csvOpen = open('filename','w')
c = = csv.writer(csvOpen, dialect='excel')
c.writerows([[header1,header2,heaer3],[value1,value2,value3]])
这里可以而且应该有一些东西。
添加一个 csvOpen.close() 来关闭文件流本身,但这不是最佳做法。
我认为您应该使用 with open,如果您这样做,文件本身将自动关闭。
import csv
with open('filename','w') as csvOpen:
c = = csv.writer(csvOpen, dialect='excel')
c.writerows([[header1,header2,heaer3],[value1,value2,value3]])
或者简单地将 csvOpen.close() 添加到 Anand 提交的 OG 答案中。希望我能帮助一些能力欢呼和快乐的键盘杀手!
补充说明:
文件上的 'w' 模式会截断文件本身,如果你想追加使用模式 'ab' 在我看来这通常是最好的。通常即使在 'write' 模式下我仍然使用 'wb'