python 如何在文件处理中从 namedtuple 中提取数据
how to extract data from namedtuple in file handling in python
在 python 的文件处理中从 namedtuple 中提取数据时遇到问题。
它在 --- 位置
显示 属性 对象
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
中的数据?
你可以这样做:
print("%s\t%d\t%s\n" % line)
打印命名元组的内容。官方文档可能不是很明显,但是here is a good tutorial to understand named tuples
写入文件时,数据只是一个字符串,读取时只能得到字符串。
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()
在 python 的文件处理中从 namedtuple 中提取数据时遇到问题。 它在 --- 位置
显示 属性 对象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
中的数据?
你可以这样做:
print("%s\t%d\t%s\n" % line)
打印命名元组的内容。官方文档可能不是很明显,但是here is a good tutorial to understand named tuples
写入文件时,数据只是一个字符串,读取时只能得到字符串。
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()