在python中的文件处理中从namedtuple中提取数据时遇到问题。 它在--- location
显示属性对象from collections import namedtuple
filename=input("Enter name of file ")
Data=namedtuple('Data',['name','id','balance'])
def write():
file=open(filename,'a')
name=input("Enter name ")
idee=input("Enter ID ")
bal=input("Enter balance ")
data=Data(name,idee,bal)
file.write(str(data))
file.close()
def read():
file=open(filename,'r')
for line in file:
print(Data.name,"\t",Data.id,"\t",Data.balance,"\n")
write()
write()
read()
我应该怎样做才能在data.name
中提取数据?
答案 0 :(得分:1)
你可以这样做:
print("%s\t%d\t%s\n" % line)
打印namedtuple的内容。官方文档可能不是很明显,但here is a good tutorial to understand named tuples
答案 1 :(得分:0)
当您将数据写入文件时,它只是一个字符串,当您阅读它时,您只能获得字符串。
from collections import namedtuple
import pickle
filename=input("Enter name of file ")
Data=namedtuple('Data',['name','id','balance'])
def write():
name=input("Enter name ")
idee=input("Enter ID ")
bal=input("Enter balance ")
data=Data(name,idee,bal)
with open(filename,'ab') as f:
pickle.dump(data,f)
def read():
with open(filename,'rb') as f:
while True:
try:
data=pickle.load(f)
print(data.name,"\t",data.id,"\t",data.balance,"\n")
except:
break
write()
write()
read()