Python 常规:总是在关闭时保存设置,而不是仅在更改时保存
我正在测试一个小型python应用程序——每当该应用程序关闭时,设置都会被保存,即使我没有做任何更改。我想知道这是否是一般做法-听起来似乎只有在进行更改时才应该保存设置,但是否有原因(除了降低复杂性外)pro保存设置总是处于关闭状态?如果您的应用程序使用例如,如果在关闭过程中出现以下情况,您将重写文件:Python 常规:总是在关闭时保存设置,而不是仅在更改时保存,python,coding-style,Python,Coding Style,我正在测试一个小型python应用程序——每当该应用程序关闭时,设置都会被保存,即使我没有做任何更改。我想知道这是否是一般做法-听起来似乎只有在进行更改时才应该保存设置,但是否有原因(除了降低复杂性外)pro保存设置总是处于关闭状态?如果您的应用程序使用例如,如果在关闭过程中出现以下情况,您将重写文件: with open('example.ini', 'w') as configfile: config.write(configfile) 如果您不做任何更改,这与以前没有什么不同。我认为
with open('example.ini', 'w') as configfile:
config.write(configfile)
如果您不做任何更改,这与以前没有什么不同。我认为这甚至与python无关。通常情况下,您会遇到如下情况:
因此,我不会这样做,除非存储文件非常复杂/缓慢,或者您确实不希望更改文件的“修改时间”,除非您实际更改了设置。但这些情况对我来说似乎相当特殊。如果您的程序在以
'w'
模式打开文件后失败,但在完全写入文件之前,您将得到一个部分写入的文件。解决这个问题的唯一方法是写入一个temp;fsync临时和重命名。该文件的修改时间将更改-这听起来很糟糕-我发现在实际更改设置时更改它更整洁-设置在.dat文件中btw@Mr_:是的,听起来很糟糕,但还不算太糟。如果修复或不修复是一个问题,我认为答案取决于程序的复杂程度:如果(a)非常简单,那么我会保持原样,(b)非常复杂:我会小心,以免弄坏它,(c)是一个中型项目,无用的重写困扰着我,我可能会写一些修改标志sysyem.Hmm-我真的不关心文件的编写-我关心的是设置文件的修改时间的变化-似乎更整洁,在实际更改中有这个变化-+一些dat文件约30 MB显示关于存储dat文件的crc如果crc改变或不改变,关闭时是否覆盖?