如何将我的变量保存到程序的txt文件中

时间:2014-04-02 17:12:02

标签: python json file python-3.x save

我今天已经开始研究这个代码了,我要做的最后一个过程是将数据保存到.txt文件中,我不知道如何做到这一点,如果可能的话,我会非常感谢一些帮助,这是代码;

import random

char1=str(input('Please enter a name for character 1: '))
strh1=((random.randrange(1,12))//(random.randrange(1,4))+10)
skl1=((random.randrange(1,12))//(random.randrange(1,4))+10)
print('%s has a strength value of %s and a skill value of %s'%(char1,strh1,skl1))

char2=str(input('Please enter a name for character 2: '))
strh2=((random.randrange(1,12))//(random.randrange(1,4))+10)
skl2=((random.randrange(1,12))//(random.randrange(1,4))+10)
print('%s has a strength value of %s and a skill value of %s'%(char2,strh2,skl2))

我已经研究了json函数,但我不确定如何使用是因为我希望数据保存在某个特定的char1(例如steve)中具有strh1的强度(例如13)和a skl1的技能(例如21)'然后为另一个角色重复此操作。如果有人能帮助我,那将是非常好的,谢谢!

1 个答案:

答案 0 :(得分:3)

使用python' s file IO。用以下内容替换print语句:

line = '%s has a strength value of %s and a skill value of %s'%(char1,strh1,skl1)
with open('output', 'a') as opfile: # This creates the file if it does not exist and opens it in the append mode
    opfile.write(line)
opfile.close()

对第二个角色执行相同操作。

JSON是一种用于将数据存储为属性值对的格式。如果您想将数据存储为:

{"data":[{"char":"steve", "strength":"13", "skill":"21"}, {...}]}

然后,您必须如上所述创建一个JSON对象,然后使用json dump方法将上述JSON写入文件:

json.dump(json_object, opfile)

修改

如果您有要写入的文件的路径,则可以在打开的调用中指定绝对路径:

with open('/home/homedir/output.txt', 'a') as opfile: