我需要一个打开txt文件并在其中添加所有数字的函数。
我在线研究后尝试了一些不同的功能,但到目前为止还没有。
def sum_this(txt):
"""
>>> sum_digits("numbers.txt")
1000
"""
fileop = open(txt)
red = fileop.read()
nums = red.split()
sums = int(nums)
total = sum(sums)
return total
" numbers.txt"包含:
500
200
150
150
数字没有点,它们在不同的行中
需要使用python-2.7
上面的代码需要改变什么才能起作用?
答案 0 :(得分:2)
紧凑(并且安全 - 您没有关闭文件)方式:
def sum_this(txt):
with open(txt, "rb") as f:
return sum(int(num) for num in f.read().split())
答案 1 :(得分:1)
nums
是一个列表,因此您需要在每个元素上调用int
,如下所示:
sums = map(int, nums)
答案 2 :(得分:0)
这应该有效
sum = 0;
fileop = open(txt, 'r');
A = readlines(fileop);
for i in range(0, len(A)):
sum = sum + A[i]
return sum
答案 3 :(得分:0)
这是一个很好的一个班轮:
def sum_this(text_file):
return sum(map(int, (open(text_file,'r').read().split('\n')))
end
您基本上是在open
部分阅读它,然后read()
将其读入字符串并根据nextLine
属性进行拆分。我有python-2.7,它适用于我。