我如何读取一个文件,追加它的内容?

How do I read a file, append it's contents?

总的来说,我是编程新手,特别是使用 Python。我正在尝试编写一个函数,它将一个文件作为参数,附加内容(同时将类型转换为浮点数)和 returns 平均值。该文件名为 "stuff.txt",很小,包含:

3
2
1
4.0
5.0

这是我目前拥有的:

def my_average(file):
    numbers = []
    with open(file) as f:
        for line in f:
            numbers.append(float(f.readline()))
    return sum(numbers)/len(numbers)


my_average('stuff.txt')

它一直试图将字符串 'stuff.txt' 转换为浮点数并抛出错误。有帮助吗?

文件中是否确实包含字符串 stuff.txt?如所写,代码中唯一的错误是您丢弃了偶数行(在 for 循环中隐式读入 line 的行),仅存储奇数行(来自 readline 电话)。

您可以通过将循环更改为:

来解决此问题
def my_average(file):
    numbers = []
    with open(file) as f:
        for line in f:
            numbers.append(float(line))  # Convert the line you've got, not a new one from readline
    return sum(numbers)/len(numbers)

如果某些行可能是无效的浮点数,例如因为文件以 stuff.txt 开头,您可以通过捕获异常并忽略它们来静默忽略这些行:

def my_average(file):
    numbers = []
    with open(file) as f:
        for line in f:
            try:
                numbers.append(float(line))
            except ValueError:
                pass
    return sum(numbers)/len(numbers)