【发布时间】:2020-09-17 12:43:38
【问题描述】:
我需要在脚本执行之间存储一个计数器的值,这样我就可以在每一百次计数时触发一个特定的子例程。我知道我可以将整数写入文本文件并重新读取它,并且我知道我可以将变量腌制到几乎相同的效果(脚本当前使用后一种方法)。
我所关心的是找到使代码尽可能优雅 - 简单易懂 - 的方法,特别是对于非技术观众。
pickle 模块名称在这方面没有帮助 - 一旦你理解了这个隐喻,它就会完全令人难忘,但如果你不知道它,则需要注释(或口头解释)来解释它是用于将 Python 对象序列化到磁盘的模块。
虽然“很高兴”,但我并不特别关心存储操作的原子性,也不是强烈保护存储的值不丢失[尽管我确实需要它在服务器重新启动时保持不变]。
我的兴趣是访问和更新变量值的优雅代码,而不是初始化存储值的优雅代码(因此,如果值要存储在文件,我对读取和写入已经存在并保存值的文件的代码感兴趣,而不是在第一次执行时创建文件)。
存储单个(数字)值以使其在脚本执行之间持续存在的最优雅(和/或最 Pythonic)的方式是什么?
【问题讨论】:
-
任何文件格式?任何人都无法理解带有数字的文本文件是什么?你认为什么是“优雅”?
-
我会去写一个文件。
pickle对于单个 int 值来说太过分了。 -
@jonrsharpe - 澄清一下,我需要清楚的不是我将值存储到的文件,而是读取和读出该值的代码。对我来说,优雅意味着简洁和清晰,但我愿意接受以不同方式解释优雅的答案。
-
那么读写文件的代码有什么不清楚的地方呢?为什么不直接使用一个合理的函数名呢?这似乎基于观点并且完全依赖于上下文 - 只需尝试一些简单的事情并与您的观众一起测试。我不明白为什么有人会投票。
标签: python zen-of-python