如何在python中根据我的要求检查/验证现有文件

时间:2013-10-18 12:18:25

标签: python file

假设我有一个名为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

这是我所做的一切。我该怎么做才能检查/验证?

3 个答案:

答案 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)