所以,我想编写一个允许用户执行各种任务的程序,其中一个我遇到了一些麻烦。
-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,它打印整行,所以我显然需要将它分成我想要的单独条目。我的问题是,如何?
答案 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