【问题标题】:How to find a string in a text file, Python如何在文本文件中查找字符串,Python
【发布时间】:2013-08-26 08:22:51
【问题描述】:

如何获取文本文件中某个 2 个字符的使用次数(例如 ('hi')) 以及如何将总和打印为 int?

我试过这样做:

for line in open('test.txt'):
  ly = line.split()
  for i in ly:
    a = i.count('ly')
    print(sum(a))

但它失败了,提前谢谢!

【问题讨论】:

  • 你不需要分行。

标签: python python-3.x counter


【解决方案1】:

您的程序失败,因为您的变量 a 是一个整数,并且您不能将 sum 函数应用于整数。 已经提出了几个例子。这是我的:

with open("test.txt") as fp:
    a = fp.read().count('ly')
print(a)

【讨论】:

    【解决方案2】:

    你可以简单地在每一行上数“ly”:

    sum(line.count('ly') for line in open('test.txt'))
    

    【讨论】:

    • 这太棒了!如何计算文件中的总字数?
    • 您可以使用:print len(text.split()),但使用 split() 定义字数并不总是好的,因为 re 是最好的。
    • 如果您想要单词数,请使用 line.split 而不是 line.count('ly')。
    【解决方案3】:

    不同的方法:

    from collections import Counter
    text = open('text.txt').read() 
    word_count = Counter(text.split())
    print word_count['hi']
    

    【讨论】:

    • 是的,你是对的,但如果我不将它拆分为一行文本,你会得到如下结果:“Hi there” => Counter({'e': 2, ' ' : 1, 'i': 1, 'H': 1, 'r': 1, 't': 1, 'h': 1})
    【解决方案4】:
    for line in open('test.txt'):
        ly = line.split()
        alist = [i.count('hi') for i in ly]
    print sum(alist)
    

    【讨论】:

      【解决方案5】:

      你可以试试这样的

      for line in open('test.txt'):
          ly = line.split()
              for i in ly:
              if 'word' in i:
                  a = a + 1
                  print (a)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-13
        • 1970-01-01
        • 1970-01-01
        • 2015-07-14
        • 2018-05-18
        • 2017-01-25
        • 2016-05-30
        相关资源
        最近更新 更多