将用户输入值存储在文件中以供另一个脚本使用

时间:2019-01-18 17:44:17

标签: python

我有一个脚本,可将问题的用户输入值写入txt文件。另一个脚本需要能够打开该文件并读取这些答案。 我一直试图在txt文件中以x = y格式写入值,但是在其他脚本中调用该值时会抛出错误,表明未定义变量。这使我相信我只是没有正确格式化我的临时txt文件,以便python读取信息。我要如何在txt文件中存储多个变量和值,以便python能够以变量名的形式读取它们?

这是第一个脚本存储我的值的方式。 (单行)

timeIn = 2019年1月18日11:39:40 supportID = Andy branch = Bristow clientID = Cindy Lou原因= grinch偷了圣诞节

这是尝试读取变量名称的值时遇到的错误。

Traceback (most recent call last):
  File "script2.py", line 9, in <module>
    f.write('[Time In] '+ timeIn)
NameError: name 'timeIn' is not defined

我的问题是我要如何在txt文件中设置这些格式以供其他脚本读取?

修改1:我以这种方式在第二个脚本中打开txt文件

t=open("testtmp.txt","r")

编辑2:我不会像在单独的行上一样写这些值(x)。我现在正在尝试读取这些值以写入另一个文件。

2 个答案:

答案 0 :(得分:1)

这种键值数据将更易于在json文件中使用。

您可以使用库json进行操作。

https://docs.python.org/2/library/json.html

使用文本文件只是在处理字符串,因此读取数据后需要将其解析为可用格式。

答案 1 :(得分:1)

这是我如何解决问题(.txt格式):

首先,我用换行符分隔了原始值。

t=open("nbsstmp.txt", "w")
t.write(timeIn+' \n')
t.write(supportID+' \n')
t.write(branch+' \n')
t.write(clientID+' \n')
t.write(problem+' \n')
t.close()

然后,我可以通过以下方式将它们读回。

t=open("nbsstmp.txt","r")
f=open("Support_Access_Log.txt","a")
timeIn=(t.readlines((1)))
a=(str(timeIn))
supportID=(t.readlines(2))
b=(str(supportID))
branch=(t.readlines(3))
c=(str(branch))
clientID=(t.readlines(4))
d=(str(clientID))
problem=(t.readlines(5))
e=(str(problem))

f.write('[Time In] ')
f.write(a.replace("['","").replace("']","").replace("\\n",""))
f.write(' [Support ID] ')
f.write(b.replace("['","").replace("']","").replace("\\n",""))
f.write(' [Branch] ')
f.write(c.replace("['","").replace("']","").replace("\\n",""))
f.write(' [Support Client] ')
f.write(d.replace("['","").replace("']","").replace("\\n",""))
f.write(' [Reason] ')
f.write(e.replace("['","").replace("']","").replace("\\n",""))
f.close()
t.close()