【问题标题】:How to write my outputs to a file in python 3.3.2如何将我的输出写入 python 3.3.2 中的文件
【发布时间】:2014-04-02 18:52:28
【问题描述】:

我编写了一些代码,为两个不同的角色创建了两个力量和技能值,我现在希望能够将输出保存到一个名为“角色”的文本文件中,我尝试了其他方法,但我没有知道它保存在哪里,理想情况下我希望程序创建文件,所以如果程序被移动到另一台计算机,它将再次创建该文件以写入,这是目前的代码;

import random

char1=str(input('Please enter a name for character 1: '))
strh1=((random.randrange(1,4))//(random.randrange(1,12))+10)
skl1=((random.randrange(1,4))//(random.randrange(1,12))+10)
line = '%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,4))//(random.randrange(1,12))+10)
skl2=((random.randrange(1,4))//(random.randrange(1,12))+10)
line = '%s has a strength value of %s and a skill value of %s'%(char1,strh1,skl1)

我希望它将数据以两行格式保存在一个txt文件中:

char1(如steve)的力量值为strh1(如12),技能值为skl1(如17) 然后在下一行重复 char2

我尝试了两种不同的方法(json 和打开输出,a)但它不起作用,因为我找不到它写入的文件,所以如果 somone 可以帮助我提供一个非常好的解决方案,谢谢!

编辑:我在 Windows 中写作

【问题讨论】:

  • 找不到文件是什么意思...
  • 你能提供更多的上下文吗?例如,您是在 Windows 或 Unix 控制台窗口、GUI 窗口还是服务器上运行此脚本?

标签: python variables python-3.x save


【解决方案1】:
char_data1 = {
   "name":"steve",
   "level":1,
    "inventory":["cloak","dagger"],
    "whatever else":"something"
};

char_data2 = {
   "name":"cookie",
   "level":1,
    "inventory":["cigarettes","methamphetamine"],
    "whatever else":"something else"
};
char_data = [char_data1,char_data2]

import json
json.dump(char_data,open("character_data.dat","wb"))


char_data_loaded = json.load(open("character_data.dat"))

它非常简单......文件“character_data.dat”是在您当前工作目录所在的位置创建的

【讨论】:

  • 对于个人教育(因为连载是我的弱点之一)使用jsonpickle 的结果是什么?
  • 速度主要是(json快得多)...但是pickle可能会序列化一些json可能无法序列化的对象...
  • 我将如何为第二个字符重复此操作
【解决方案2】:

如果您需要知道保存文件的默认位置,可以使用:

import os
print (os.getcwd())

... 显示:

M:\

...如果我从 IPython 运行此代码,则在联网的 Windows PC 上:

C:\usr\sjl\python

...如果我从该目录中的 Windows 命令提示符运行它。

另见Find current directory and file's directory

【讨论】:

    猜你喜欢
    • 2016-03-18
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    相关资源
    最近更新 更多