2015-09-14 16 views
1

你好,我的问题是,我需要找到一种方式来导出变量作为文本文件(或其他文件类型),然后将变量导入到Python我可以,稍后在程序中使用它们。例如你可以输出变量到一个文本文件,因为变量不是字符串

i = 0 

while I != 10: 
    i = i + 1 
    Var1 = input("What is your name") 
    Var2 = ("What is your surname") 

    with open('filename', 'w') as file_out: 
     file_out.write(var1 + "/n") 
     file_out.write(var2 + "/n") 
     file_out.write("/n") 

现在,如果我跑这个代码的话,大概(可能已经搞砸这里键入它; P),它将在变量1变量2保存到第一线,第二个,然后留下一个线在一个新生成的文本文件中,但现在我需要重新打开python中的文本文件,然后使用第一个变量结果(例如,如果有人键入'john',我需要程序来知道约翰是谁,他的姓是什么),类似地,当它重复时,程序将在其他人的名字(例如'ethan')下面写下johns的名字,然后该程序将以ethan和他的姓氏以相同格式写入。

因此,我问的是,如果有反正导出这些作为变量而不是字符串,因为如果是这样我可以打开文本文件,并告诉我的程序使用变量。有人可以告诉我,我的建议是否至少有可能,以及他们是否可以这样做。

+0

你应该将它们存储为JSON –

+0

不能你刚才读他们while循环,步长2,因为该文件将按照格式的名字,姓氏,名字,姓氏等。 – TomNash

+0

作为一个方面说明,根据[Kyrubas](http://stackoverflow.com/users/2100534/kyrubas),'Var2 =(“什么是你的姓氏“)'应该可能是'Var2 = input(”你的姓氏是什么“)''。 –

回答

1

它看起来像你想看看pickle module

使用字典使用此方法时存储多个变量。这是一个非常有用的容器,可用于即时创建的不确定数字变量。

import pickle 

myvardict = {} 
i = 0 
while i != 10 
    i =+ 1 
    Var1 = input("What is your name") 
    Var2 = input("What is your surname") 
    myvardict[i] = [Var1, Var2] 

pickle.dump(myvardict,"myoutfile.pic") 

然后加载你只需要调用适当的方法

import pickle 
myvardict = pickle.load("myoutfile.pic") 
0

代替酸洗你的对象,你可以存储你的数据作为JSON(尤其是有用的,如果你要导出数据结构到其他语言)。

import json 
data = dict(i=1,j=12,hello=world) 
with open('data.json','w') as json_file: 
    json.dump(data) 

,然后你可以使用加载:

import json 
data = None 
with open('data.json') as json_file: 
    data = json.load(json_file) 
相关问题