我有一个名为 paintingJobs.txt 的文本文件,每一行的结构都是这样的:
估计编号,估计日期,客户ID,最终总计,状态(估计的E,接受的工作的A或不接受的N)和支付的金额。 这是一个摘录:
E5341,21 / 09/2015,C102,440,E,0
E5342,21 / 09/2015,C103,290,A,290
E5343,21 / 09/2015,C104,730,N,0
我希望用户输入任何估计编号并输出该行。我怎样才能做到这一点?
这是我提出的,但它不能按要求工作:
def option_A():
es_num = str.upper (input ("Please enter the estimate number: "))
with open('paintingJobs.txt', 'r') as file:
line = file.readline ()
print (line, end = '')
if es_num in file:
#print whole line
else:
print("Not found")
我想以这种格式显示信息
估算编号:估算编号
客户ID:客户ID
估算金额:最终总金额
估计日期:估计日期
状态:状态
答案 0 :(得分:1)
要打印该行,我建议您按如下方式遍历文件的每一行:
def option_A():
es_num = str.upper (input ("Please enter the estimate number: "))
result = "Not found"
with open('paintingJobs.txt', 'r') as file:
for line in file:
if es_num in line:
result = line
break
print(result)
要格式化显示,可以使用逗号分隔行作为分隔符以获取信息列表。然后格式化您的显示,如下所示:
data = result.split(',')
print("Estimated number:{0}".format(data[0]))
print("Customer ID:{0}".format(data[2]))
...etc...
然后,如果您需要从文本文件中检索更复杂的数据,那么强大的方法是使用正则表达式,例如方法re.match(...)
。