gpt4 book ai didi

Python计算文本文件中的逗号

转载 作者:行者123 更新时间:2023-11-28 22:43:06 30 4
gpt4 key购买 nike

我正在尝试计算文本文件中条目之间的逗号数,以便我可以使用逗号数来查找条目数以得出平均值。不幸的是,它得出的 commacount 为零。

file = open("inputs.txt", "r")

line = file.read()

commaCount = 0

for line in file:
for char in line:
if char == ',':
commaCount+=1

commacount2 = (multiply(commaCount,2))

total = sum(int(num) for num in line.strip(',').split(','))

print(commaCount)
print(commacount2)

print("Your average for all inputs is" + str(divide(total,commacount2)))

最佳答案

您已经使用 line = file.read() 使用了文件迭代器,因此您没有迭代任何内容。您应该忘记 read 并遍历文件对象本身:

with  open("inputs.txt", "r") as f:
count = sum(line.count(",") for line in f)
# f.seek(0)
# use the lines again

如果你想让指针回到起点再次迭代你可以f.seek(0) 但我不确定 total = sum(int(num) for num in line.strip(',').split(',')) 正在做。

调用 .read 或 .readlines 后,您已将指针移至文件末尾,因此除非您 f.seek(0) 无法再次遍历所有行,否则基本上做:

In [8]: iterator = iter((1,2,3))
In [9]: list(iterator) # consume
Out[9]: [1, 2, 3]
In [10]: list(iterator) # empty
Out[10]: []
In [11]: list(iterator).count(1)
Out[11]: 0

如果您有一个包含整数的逗号分隔文件,您可以使用 csv 模块,行的长度将为您提供元素的数量并将字符串映射到整数并对所有行值求和:

import csv
with open("inputs.txt") as f:
r = csv.reader(f) # create rows split on commas
sm = 0
com_count = 0
for row in r:
com_count += len(row) # "1,2,3"
sm += sum(map(int,row))

它实际上是 sm += sum(map(int,row)) -1 来匹配逗号计数,但如果你想要元素的数量,那么计算逗号不是正确的方法"1,2,3".count(",") == 2 但是有三个元素。

关于Python计算文本文件中的逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31126491/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com