计算每行的整数数

时间:2016-01-24 04:44:46

标签: python python-2.7

我想了解如何计算每行的整数数。到目前为止,我有以下内容:

import sys

filename = raw_input("Enter Filename: ")

names_list = []
with open(filename, 'r') as file:
    for line in file:
        line = line.strip()
        if line:
         if not line.startswith("#"):       
            names_list.append(line)    

with open(filename, 'r') as file:
    for line in file.readlines():
        words = len(line.split(' '))
        print words

输出是:

Enter Filename: somenumbers.txt
6
9
4
1
5
5
5
5
1
5
1
1
5
20

输出应该是:

Enter Filename: somenumbers.txt
9
4
5
5
5
1
20

对于我在做什么的任何建议都不正确,以计算每行的整数数量?谢谢。

编辑: 随着strip()的更改,输出不正确。看起来从6的输出开始,不打算每隔一个整数打印一次。这些附加值(6,1,5,5,5)来自哪里?如何避免这些额外的错误值? (到目前为止,谢谢大家)

3 个答案:

答案 0 :(得分:1)

<强>更新
您循环浏览文件的内容两次

$_GET['subpage']

第一次添加所有&#34;有效&#34;到数组的行,即with open(filename, 'r') as file: #... with open(filename, 'r') as file: #... (为什么这个标识符?)。第二次只打印每行中的单词数,无论其有效性如何。您只需要循环一次

names_list

你想要的是with open(filename, 'r') as file: for line in file: if line.strip() and not line.startswith("#"): names_list.append(line) print "There are ", len(line.split()), " numbers on this line"

请参阅this answer

假设该行只包含每个非#行的整数,只需将其拆分并计算&#34;单词的数量&#34;。

split

答案 1 :(得分:1)

使用words = len(line.split(' '))代替words = len(line.strip(' '))

更新

而不是文件的第二次打开,使用: for name in names_list:

UPDATE2:

您可以通过以下方式进一步简化:

with open(filename, 'r') as file:
    for line in file:
        print(len(line.strip().split()))

答案 2 :(得分:0)

我认为你的意思是.split()而不是.strip()。替换:

words = len(line.strip(' '))

使用:

words = len(line.split())