将文本文件中的行拆分为列表中的单独条目?

时间:2016-01-27 16:10:17

标签: python

所以,我想编写一个允许用户执行各种任务的程序,其中一个我遇到了一些麻烦。
-Option A允许用户通过作业的“估计ID”搜索文本文件,它将在文件中搜索该匹配ID并以下列格式返回相关数据:
估算编号:(估算编号
客户ID:(客户ID
估算金额:(最终总金额
估计日期:(估算数据
状态:(状态

现在,下面是数据存储在文本文件中的格式:
E5346,23 / 09/2015,C107,970,N,0
E5347,23 / 09/2015,C108,1050,E,0
E5348,23 / 09/2015,C109,370,A,200

数据显示为估算数估算日期客户ID 最终总计(英镑)状态(E表示估计值,A表示已接受作业或N表示未接受)支付金额(以英镑计算)。显然这些顺序错误,并且不同的条目都在一行上,用逗号分隔,但格式不能更改。
以下是我为此写的代码:

Est_no = input ("Please enter the Estimate Number you wish to search: ")
data = []
search = open("paintingJobs.txt","r")
for line in search:
    if (Est_no) in line:
        data.append (line)
        print ("Estimate Number:",data[0])
        print ("Customer ID:", data[2])
        print ("Estimate amount:",data[3])
        print ("Estimate Date:",data[1])
        if data[4] == "E":
            status = ("Estimate")
        if data[4] == "A":
            status = ("Accepted Job")
        if data[4] == "N":
            status = ("Not Accepted")
        print ("Status:",status)
search.close()

我认为将行放入列表是个好主意,并且,由于条目以逗号分隔,它们将是列表中的独立条目,并将根据需要进行打印,但是,它添加了从文件行作为一个条目;当我打印列表中的第一个条目时,我想要它是Estimate Number,它打印整行,所以我显然需要将它分成我想要的单独条目。我的问题是,如何?

1 个答案:

答案 0 :(得分:1)

使用string.split()通过分隔符拆分字符串(在这种情况下,分隔符为",")。

if块下的代码现在如下:

# Remove the data variable definition above the for loop
if (Est_no) in line:
    data = line.split(',')
    # Process data like a list like you are already doing