运行代码之间的Python计数器
我想通过使用此代码限制打印到文本文件的次数,每次我运行下面的代码时,a被定义为零,我如何能够通过在代码末尾保存其值来创建计数器,然后在下次运行代码时恢复其值运行代码之间的Python计数器,python,text,counter,Python,Text,Counter,我想通过使用此代码限制打印到文本文件的次数,每次我运行下面的代码时,a被定义为零,我如何能够通过在代码末尾保存其值来创建计数器,然后在下次运行代码时恢复其值 a = 0 if a < 3: score = 5 with open('tom.txt','a') as fo: fo.write('Tom: ') fo.write(str(score)) fo.write("\n") a = a + 1 a=0 如
a = 0
if a < 3:
score = 5
with open('tom.txt','a') as fo:
fo.write('Tom: ')
fo.write(str(score))
fo.write("\n")
a = a + 1
a=0
如果a<3:
分数=5
以open('tom.txt','a')作为fo:
fo.write('Tom:')
fo.write(str(score))
fo.写入(“\n”)
a=a+1
如果您有任何要求,我们将不胜感激。谢谢您……怎么样
a = restore_state()
if a < 3:
score = 5
with open('tom.txt','a') as fo:
fo.write('Tom: ')
fo.write(str(score))
fo.write("\n")
a = a + 1
save_state(a)
及
对于单个整数,它很难比纯文本文件更简单。如果您想更多地参与进来—更多的设置,不同的数据类型—您可以使用JSON(
导入JSON
)或YAML(导入YAML
)或配置文件(导入configparser
)
您需要定义默认设置(如果设置文件不存在,请使用默认设置)、从文件加载设置的函数以及将设置保存到文件的函数
import json
class Settings:
def __init__(self, settings_file, default_values):
self.settings_file = settings_file
self.default_values = default_values
self.load()
def load(self, load_file=None):
if load_file is None:
load_file = self.settings_file
try:
with open(load_file) as inf:
self.values = json.load(inf)
except FileNotFoundError:
self.values = self.default_values
def save(self, save_file=None):
if save_file is None:
save_file = self.settings_file
with open(save_file, "w") as outf:
json.dump(self.values, outf)
def __getattr__(self, key):
return self.values[str(key)]
def __setattr__(self, key, value):
if key in {"settings_file", "default_values", "values"}:
return super(Settings, self).__setattr__(key, value)
else:
self.values[str(key)] = value
return value
你喜欢用什么
state = Settings("my_settings.json", {"a": 0})
if state.a < 3:
score = 5
with open('tom.txt','a') as fo:
fo.write('Tom: ')
fo.write(str(score))
fo.write("\n")
state.a += 1
state.save()
state=Settings(“my_Settings.json”,{“a”:0})
如果状态a<3:
分数=5
以open('tom.txt','a')作为fo:
fo.write('Tom:')
fo.write(str(score))
fo.写入(“\n”)
状态a+=1
state.save()
这个问题适用于哪个上下文?您可以定义一个函数,比如writeToFile和一个变量writeToFile.count,并在每次调用该函数时更新它
import json
class Settings:
def __init__(self, settings_file, default_values):
self.settings_file = settings_file
self.default_values = default_values
self.load()
def load(self, load_file=None):
if load_file is None:
load_file = self.settings_file
try:
with open(load_file) as inf:
self.values = json.load(inf)
except FileNotFoundError:
self.values = self.default_values
def save(self, save_file=None):
if save_file is None:
save_file = self.settings_file
with open(save_file, "w") as outf:
json.dump(self.values, outf)
def __getattr__(self, key):
return self.values[str(key)]
def __setattr__(self, key, value):
if key in {"settings_file", "default_values", "values"}:
return super(Settings, self).__setattr__(key, value)
else:
self.values[str(key)] = value
return value
state = Settings("my_settings.json", {"a": 0})
if state.a < 3:
score = 5
with open('tom.txt','a') as fo:
fo.write('Tom: ')
fo.write(str(score))
fo.write("\n")
state.a += 1
state.save()