假设我有一个名为abc.txt的文件,内容为FirstName,姓氏,年龄,性别
Jack, Hugman, 22, M
Joe, Zareil, 32, M
Ashely, Timberlake, 28, F
现在我的要求就是我只需要FirstName,LastName和age。那么我如何用文件验证/检查我的要求。这三个字段我将在我的类对象中使用
class A:
def __init__(self, fname, lname, age):
self.fname = fname
self.lname = lname
self.age = age
fp = open("abc","r")
for lines in fp:
temp = lines.split(",")
print temp
这是我所做的一切。我该怎么做才能检查/验证?
答案 0 :(得分:2)
一种简单的方法是使用异常:基本上指定您对文件的期望,假设一切都在那里解析它。如果一个断言触发某些东西已经关闭。
例如你可以这样做:
a = A(temp[0], temp[1], int(temp[2])
答案 1 :(得分:1)
你可以像这样分开
for lines in fp:
temp = lines.split(",")[:-1]
print temp
答案 2 :(得分:0)
你可以忽略第四个字段。
class A:
def __init__(self, fname, lname, age):
self.fname = fname
self.lname = lname
self.age = age
def __str__(self):
return "fname={}, lname={}, age={}".format(self.fname, self.lname, self.age)
with open("abc.txt") as f:
for line in f:
fname, lname, age = [g.strip() for g in line.split(",")[:-1]]
a = A(fname, lname, age)
print(a)
结果:
fname=Jack, lname=Hugman, age=22
fname=Joe, lname=Zareil, age=32
fname=Ashely, lname=Timberlake, age=28
如果您只想使用完全三个字段的那些行,请执行以下操作:
with open("in.txt") as f:
for line in f:
fields = [g.strip() for g in line.split(",")]
if len(fields) == 3:
a = A(fields[0], fields[1], fields[2])
print(a)