Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 定期写入可由其他进程清除的文件的正确方式?_Python_File_Concurrency_Atomic - Fatal编程技术网

Python 定期写入可由其他进程清除的文件的正确方式?

Python 定期写入可由其他进程清除的文件的正确方式?,python,file,concurrency,atomic,Python,File,Concurrency,Atomic,我有一个Python脚本,它必须每秒向文件写入一行新行(包含一个数字) 我有另一个程序需要定期存档该文件,因此它可能会将该文件移动到另一个位置(例如,如果该文件不再存在,Python可以重新创建该文件),但任何其他解决方案都是可能的(该文件可以被复制、保留并清空f.e.) 什么是确保一切都以原子方式进行的正确方法,即不丢失任何数据?您可以尝试使用“w+”选项打开文件,如果文件存在,它将附加数据,如果文件不存在,它将创建新数据。谢谢,但我更关心的是在移动(或清除)文件时Python写入文件通过另一

我有一个Python脚本,它必须每秒向文件写入一行新行(包含一个数字)

我有另一个程序需要定期存档该文件,因此它可能会将该文件移动到另一个位置(例如,如果该文件不再存在,Python可以重新创建该文件),但任何其他解决方案都是可能的(该文件可以被复制、保留并清空f.e.)


什么是确保一切都以原子方式进行的正确方法,即不丢失任何数据?

您可以尝试使用“w+”选项打开文件,如果文件存在,它将附加数据,如果文件不存在,它将创建新数据。

谢谢,但我更关心的是在移动(或清除)文件时Python写入文件通过另一个进程一旦Python获得写入文件的权限,它将不会被删除,因为Python将锁定它进行任何修改。如果文件删除已经开始,你就无法获得写入权限。你的操作系统是什么?@AndrewHenle它是一个raspberry pi,所以是Raspian,它是一个debian。你的Python进程是在写入之间关闭文件还是永久保持它打开?@mhawke它保持它打开,但我可以更改它