我想了解如何计算每行的整数数。到目前为止,我有以下内容:
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)来自哪里?如何避免这些额外的错误值? (到目前为止,谢谢大家)
答案 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)