【问题标题】:How to read how much numbers in text file?如何读取文本文件中有多少数字?
【发布时间】:2021-12-31 19:04:36
【问题描述】:

我对脚本一无所知,这段代码是从一个与此类问题无关的论坛给我的,所以我在这里请求更好的反馈。

“numbers.txt”包含很多数字

10 20 30 40 50
1 2 3 4 5
11 12 13 14 15
3,4,5,6,7,8,9,10
etc...

当我运行脚本并选择查看数字“1”有多少时,它会计算所有“1”包括(10、11、12、13 等),这是错误的不是我需要的.如何纠正这个?任何人都可以编辑此代码,谢谢。

def main():
    file  = open("numbers.txt", "r").read()
    value  = input("Enter the value: ")
    count = file.count(value)
 
    if count == 0:
        print("Invalid number.")
    else:
        print("Value occurrences: " + str(count))
main()

【问题讨论】:

  • 这里不清楚你想实现什么,请说的更具体些。我愿意提供帮助,但这个网站并不适合不懂任何代码的人,它适合有特定问题的程序员。
  • 您是否要计算一个值的实例数,即文件中有多少个 1,但只计算离散的“1”,而不是“1”在“10”、“11”等?
  • 不知道文本文件的确切格式没有人能给你准确的答案。您的示例具有逗号和空格分隔的值。你的文件有一个,还是两者都有?

标签: python file text count numbers


【解决方案1】:

假设您的数字全部由空格分隔(例如空格、换行符、制表符),这将为您计算您输入的任何字符串的每次出现次数:

value  = input("Enter the value: ")

with open("numbers.txt", "r") as file_handler:

    text = file_handler.read()

    values = text.split()

    selects = [item for item in values if item == value ]

print("Value occurrences: ", str(len(selects)))

【讨论】:

  • 想象我的文件有 5 个数字(示例)10 11 12 13 14 如果我问是否有数字 10,它会说是,只有“1”,因为任何其他数字只包含“1”不是“10”。我的文件可能有 1000 个数字,其中 500 个是数字“50”,所以当我要求该数字时,它会说“500”。我可以用空格或其他任何东西分隔数字
  • 如果您的数字由空格、制表符或换行符分隔,这将起作用。
  • 我收到此错误
  • Traceback(最近一次调用最后一次):文件“C:\test\test2.py”,第 9 行,在 中选择 = [item for item in list if item == value] TypeError : 'type' 对象不可迭代
  • 更新并修正了一个错字,再试一次。
猜你喜欢
  • 2013-03-10
  • 2012-10-06
  • 1970-01-01
  • 2016-09-06
  • 1970-01-01
  • 2015-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多