我有一个以不同行组织的数字文件。
我从今天早上8点起就开始研究这个问题了,我一直遇到同样的两个问题:
该文件如下所示:
6 7 3 7 35 677
202 394 23
595 2 30 9
39 3 5 1 99
我基本上想要将每行的所有数字加起来。所以我想一起添加6,7,3,7,35,677等等。但两个“段落”中的线条需要保持在一起。
这对我来说最有意义,但它不起作用。
filename = input('Enter filename: ')
f = open(filename, 'r')
data = f.read().split()
my = (int(data[0]))
text = (int(data[1]))
sum(my,text)
我不知道发生了什么。我知道我需要拆分('\ n')然后我不能做任何数学运算。我也无法转换为int。有什么建议吗?
答案 0 :(得分:1)
with open("file.txt", "r") as objFile:
lsNos = objFile.readLines()
total = 0
for strLine in lsNos:
if strLine.strip():
lsNos = strLine.split(" ")
for No in lsNos:
if No.strip():
total += int(No.strip())
答案 1 :(得分:0)
分手后,您需要转换"文字"输入str或Unicode为整数,浮点数或小数。
答案 2 :(得分:0)
from itertools import imap
with open("your_file") as inp:
for numbers in (imap(int, line.strip().split()) for line in inp):
print(sum(numbers)) if numbers else print()
如果您使用的是Python 3,请删除导入行,并将imap
替换为map
答案 3 :(得分:0)
这些方面的某些内容可能有所帮助。
filename = input('Enter filename: ')
with open(filename) as f:
for line in f:
# split line into a list of numbers (as strings)
line = line.split()
if not line:
# If the line is empty, print a blank line
print()
else:
# otherwise get the total for the line
total = 0
for n in line:
total += int(n)
print(total)