【问题标题】:Splitting lines in a text file into separate entries in a list?将文本文件中的行拆分为列表中的单独条目?
【发布时间】:2016-01-27 16:10:16
【问题描述】:

所以,我想编写一个允许用户执行各种任务的程序,其中一项任务我遇到了一些麻烦。
-选项 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()

我有一个我认为将行放入列表的好主意,并且由于条目由逗号分隔,它们将是列表中的独立条目,并且会根据需要打印,但是,它添加了文件中的一行作为一个条目;当我打印列表中的第一个条目(我想成为估计数)时,它会打印整行,所以我显然需要将它拆分为我想要的单独条目。我的问题是,怎么做?

【问题讨论】:

  • 我认为这对你有用data+=line.split(', ')

标签: python


【解决方案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

【讨论】:

  • 这完美!谢谢人 :D 分隔符 ',' 似乎在每个逗号处分割线,这正是我所需要的。干杯!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-24
相关资源
最近更新 更多