我有一个档案,里面有我拥有的每种水果的编号。然后我需要每分钟编辑它以保持它的最新状态。在
apples: 3
bananas: 6
oranges: 12
total: 21 fruits
我想用python编辑这个文件。但是,我遇到了几个问题:
1)我目前正在使用以下读/写。在
^{pr2}$是否有更好/更有效的方法(无内存映射)。我尝试过使用f.seek(offset,from_what),但这有它自己的问题(如果apple从1位数变成2位数,它会抛出文件的其余部分)。在
2)我如何看待它的变化?我试着做“tail-f”,但是我现在编辑文件的方式会附加整个新文件。在
3)当我进入while look时,我一直在编辑文件,所以每当我试图对文件进行cat或vim时,它都是不完整的!理想情况下,我打开文件,我可以看到整个文件,并看到它的更新。在
谢谢你的阅读!在
您可以使用“w+”或“r+”模式进行读写。当你以文本模式打开一个文件时,默认情况下它是完全缓冲的。要查看实时更新,您必须
flush
每次写入或以行缓冲模式打开文件(buffering=1
)。此外,您不能使用
tail -f
,因为文件没有附加。要观看实时更新,您必须反复调用cat
,所以watch cat fruits.txt
也可以。在我在这里模拟了你的情景。在
最好的选择是读入文件并将水果的数量解析为变量。然后做你的数学(加3个苹果或其他什么),然后重写文件。在
你也许可以用一个字典做到最好,其中的键是你的水果名称,值是水果的数量。只需编写一个函数,该函数接收您的文件并填写字典,然后用您的数学更新字典,然后编写一个函数,将您的词典以您想要的格式写入文件。这应该相对简单。在
相关问题 更多 >
编程相关推荐