从文本文件中提取用户输入

时间:2016-12-11 19:08:33

标签: file python-3.x file-io

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

     

估算金额:最终总金额

     

估计日期:估计日期

     

状态:状态

1 个答案:

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