file_handle = open("/var/www/transactions.csv", "a")
c = csv.writer(file_handle);
oldamount = amount / 1.98
file_handle.seek(0);
c.writerow( [addre, oldamount, "win"])
这是我的代码
我希望将[addre,oldamount," win"]写到我的CSV文件的开头,但是它不起作用。它仍然是最底层的。
答案 0 :(得分:3)
您正在追加("a"
)模式下打开文件。 open()
with open("/var/www/transactions.csv", "r+") as f:
olddata = f.read()
f.seek(0)
c = csv.writer(f);
c.writerow([addre, oldamount, "win"])
f.write(olddata)
明确指出了这一行为:“无论当前的搜索位置如何,所有写入都附加到文件的末尾”。
不可能像你想的那样在文件的开头“只插入”文本。您既可以读取整个文件,也可以在前面添加数据,然后将其写回,或者您可以了解数据最后的结果。
重写示例:
os.rename()
请注意,如果写入时出现问题,可能会损坏您的文件。如果您想最大限度地减少这种可能性,请写入新文件,然后{{1}}覆盖旧文件。