Python: 如何计算文件中数字的总和?
Python: How do I calculate the sum of numbers from a file?
如何计算 .txt 文件中的数字总和?
文件中的数据格式为:
7
8
14
18
16
8
23
...
我从文件中读取数据并将每一行值分配给 'line' vatiable,但我想得到如下内容:result = 7+8+14+...
f = open('data.txt', 'r') #LOOP AND READ DATA FROM THE FILE
for line in f:
code
file = open("data.txt", "r")
numbers = []
for line in file:
numbers.append(int(line))
print(sum(numbers))
这基本上只是创建一个数字列表,其中每一行都是列表中的一个新条目。然后它显示列表的总和。
这是我现在能想到的最紧凑的代码:
(更新以处理最后的 n
,谢谢@JonClements!)
with open('file.txt', 'r') as fin:
ans = sum(int(line) for line in fin if line.strip().isnumeric())
对于你的代码结构,你也可以这样做:
f = open('data.txt', 'r')
ans = 0
for line in f:
try:
ans += int(line.strip())
except ValueError:
pass
编辑:
由于与 'n' 的混淆已经清除,第一个示例可以像
一样简单
with open('file.txt', 'r') as fin:
ans = sum(int(line) for line in fin)
甚至这个单行:
ans = sum(int(line) for line in open('file.txt', 'r'))
但是文件处理存在一定的风险,所以不强烈推荐。
这是一个解决方案(考虑所有的行都是数字):
def calculate_number_in_file(file_path):
with open(file_path, 'r') as f:
return sum([int(number.strip()) for number in f.readlines()])
在智能手机上...
with open(filepath) as f:
lines = f.readlines()
numbers = [int(line) for line in lines]
print(sum(numbers))
with open ('data.txt', 'r') as f:
data = f.readlines()
sum = 0
for line in data:
sum += int(line.strip())
print(sum)
一个简单的解决方案是,根据史蒂文和 AChamp 的建议
,它也会处理每行末尾的 \n
with open("abc.txt","r")as f:
print(sum(int(x) for x in f))
保持简单:
with open('data.txt', 'r') as f:
result = sum(map(int, f))
int
映射到 f
的每一行,然后 sum()
将结果整数相加。
如何计算 .txt 文件中的数字总和?
文件中的数据格式为:
7
8
14
18
16
8
23
...
我从文件中读取数据并将每一行值分配给 'line' vatiable,但我想得到如下内容:result = 7+8+14+...
f = open('data.txt', 'r') #LOOP AND READ DATA FROM THE FILE
for line in f:
code
file = open("data.txt", "r")
numbers = []
for line in file:
numbers.append(int(line))
print(sum(numbers))
这基本上只是创建一个数字列表,其中每一行都是列表中的一个新条目。然后它显示列表的总和。
这是我现在能想到的最紧凑的代码:
(更新以处理最后的 n
,谢谢@JonClements!)
with open('file.txt', 'r') as fin:
ans = sum(int(line) for line in fin if line.strip().isnumeric())
对于你的代码结构,你也可以这样做:
f = open('data.txt', 'r')
ans = 0
for line in f:
try:
ans += int(line.strip())
except ValueError:
pass
编辑: 由于与 'n' 的混淆已经清除,第一个示例可以像
一样简单with open('file.txt', 'r') as fin:
ans = sum(int(line) for line in fin)
甚至这个单行:
ans = sum(int(line) for line in open('file.txt', 'r'))
但是文件处理存在一定的风险,所以不强烈推荐。
这是一个解决方案(考虑所有的行都是数字):
def calculate_number_in_file(file_path):
with open(file_path, 'r') as f:
return sum([int(number.strip()) for number in f.readlines()])
在智能手机上...
with open(filepath) as f:
lines = f.readlines()
numbers = [int(line) for line in lines]
print(sum(numbers))
with open ('data.txt', 'r') as f:
data = f.readlines()
sum = 0
for line in data:
sum += int(line.strip())
print(sum)
一个简单的解决方案是,根据史蒂文和 AChamp 的建议
,它也会处理每行末尾的 \nwith open("abc.txt","r")as f:
print(sum(int(x) for x in f))
保持简单:
with open('data.txt', 'r') as f:
result = sum(map(int, f))
int
映射到 f
的每一行,然后 sum()
将结果整数相加。