【问题标题】:How do you search for a certain thing in a text file in python?你如何在 python 的文本文件中搜索某个东西?
【发布时间】:2017-12-08 12:38:51
【问题描述】:

我有一个文本文件:

E5341,21/09/2015,C102,440,E,0
E5342,21/09/2015,C103,290,A,290
E5343,21/09/2015,C104,730,N,0
E5344,22/09/2015,C105,180,A,180
E5345,22/09/2015,C106,815,A,400
E5346,23/09/2015,C107,970,N,0
E5347,23/09/2015,C108,1050,E,0
E5348,23/09/2015,C109,370,A,200
E5349,25/09/2015,C110,480,A,250
E5350,25/09/2015,C111,330,A,330
E5351,25/09/2015,C112,1750,E,0
E5352,28/09/2015,C113,1500,N,0
E5353,28/09/2015,C114,272,A,200
E5354,29/09/2015,C115,560,E,0
E5355,29/09/2015,C116,530,A,450
E5356,29/09/2015,C117,860,E,0
E5357,29/09/2015,C118,650,E,0
E5358,29/09/2015,C119,380,A,380
E5359,29/09/2015,C120,980,N,0
E5360,30/09/2015,C121,1375,E,0
E5361,01/10/2015,C122,374,A,374

E代表估计数

预估数字后的日期为预估日期

C 代表客户编号

客户编号后面的数字是最终的总和,以英镑为单位

最终总数后的字母告诉您该工作是被接受 (A) 还是未被接受 (N) 或者该工作只是一个估计值 (E)

状态^后面的数字是已经支付的总金额,以英镑计

我想知道如果我在 python 中输入其中一个估计数字,我可以打印出日期或计算出未付款项并找出工作的状态。

我曾尝试对此进行研究,但我不明白,如果对此提供任何帮助,我将不胜感激。

如果我输入估计数 5353 的预期结果是为了显示该示例的日期,即 2015 年 9 月 28 日

【问题讨论】:

  • 有很多方法可以解决这个问题,但你必须付出一些努力。你甚至没有展示过尝试或到目前为止你已经尝试过的东西。
  • 你有没有尝试过?与我们分享您的尝试以及您遇到的问题。
  • 我会找到我的尝试并将它们发布在这里
  • 发布预期结果

标签: python text-files


【解决方案1】:

Python 2 中的基本思想(注意我没有对此进行测试,但它应该是接近的或按原样工作):

search = '5356' # supply this as your search
search = 'E'+search
fh = open('textfile.txt')
for line in fh:
    elements = line.split(',')
    if len(elements) == 6:
        if elements[0] == search:
            print 'For Estimate #'+search
            print 'date:'+elements[1]
            print 'cust:'+elements[2]
            print 'totl:'+elements[3]
            print 'stat:'+elements[4]
            print 'paid:'+elements[5]
fh.close()

现在...去查看 Python 2 文档中该示例中的每个语句,看看其中的各个项目是做什么的。如果您打算继续学习这门语言,这将为您提供一点学习语言的起点。

请记住,失败是可能的:例如,如果文本文件名错误并且文件打开失败怎么办?您需要查看tryexcept Python 语言元素。

每个人都需要从某个地方开始,这就是为什么我没有给你一个尖刻的“展示你的作品”的答案。所以这是你的开始。出去学习。 :)

【讨论】:

  • 非常感谢!这真的很有帮助,因为我不知道从哪里开始,我会自己尝试一下,并尝试更详细地弄清楚各种术语的含义
  • 我尝试过这种方法并进行了调查,但每次尝试都会发生这种情况
  • Traceback(最近一次调用最后一次):文件“/Users/Jayden/Desktop/PYTHON/task3A test.py”,第 13 行,在 print("客户 ID 是:") +elements[2] TypeError: +: 'NoneType' and 'str' 不支持的操作数类型
  • 我不确定这是什么意思
  • 使用你的测试文件(上面)和提供的代码,它在这里工作正常。也许您使用的不是 Python 2,而是 Python 3? Python 3 和 Python 2 彼此不兼容。建议:将每个+elements[n] 语句更改为+str(elements[n]),看看会发生什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多