我有一个脚本,可将问题的用户输入值写入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)。我现在正在尝试读取这些值以写入另一个文件。
答案 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()