puthon 中读取txt 里的数字并求平均值

读取7.txt中的内容, 把其中的数字(阿拉伯)求平均值, 并保留到7_1.txt中.
txt 的内容是(注意第五行是空着的,一共有八行)
100
200
三百
400

500
600
结束了

f = open('7.txt', encoding='utf-8')
numbers = []
lines = f.readlines()
f.close()

for line in lines:
    if line[:-2].isdigit():
        numbers.append(int(line))

avg = sum(numbers) / len(numbers)

f = open('7_1.txt', 'w')
f.write(str(avg))
f.close()

思路如下
读取文件中的每一行。
判断元素值是否是数字,是的话并求和,计数

然后计算平均值就好了


# 读取文件内容
with open('7.txt', 'r') as file:
    lines = file.readlines()

# 提取数字并求平均值
numbers = []
for line in lines:
    line = line.strip()
    if line.isdigit():
        numbers.append(int(line))
average = sum(numbers) / len(numbers)

# 保存结果到新文件
with open('7_1.txt', 'w') as file:
    file.write(str(average))

print(f"平均值为:{average},已保存到 7_1.txt 文件中。")

你可以使用 Python 的文件读取和处理功能来完成这个任务。下面是一个可能的实现:

# 打开源文件和目标文件
with open('7.txt', 'r') as source_file, open('7_1.txt', 'w') as target_file:
    # 初始化计数器和总和
    count = 0
    total = 0
    # 逐行读取源文件
    for line in source_file:
        # 尝试将每行转换为整数
        try:
            number = int(line.strip())
            # 如果转换成功,添加到总和中并增加计数器
            total += number
            count += 1
        except ValueError:
            # 如果转换失败,忽略该行
            pass
    # 计算平均值
    if count > 0:
        average = total / count
    else:
        average = 0
    # 将平均值写入目标文件
    target_file.write(str(average))

这个代码将打开名为 '7.txt' 的文件进行读取,并将平均值写入名为 '7_1.txt' 的文件中。它将逐行读取源文件中的内容,尝试将每行转换为整数,如果转换成功,则将该数字添加到总和中并增加计数器。如果转换失败,则忽略该行。最后,它计算平均值并将其写入目标文件中。

请注意,上述代码假设文件中每行都只包含一个数字,并且该数字可以转换为整数。如果文件中包含其他类型的数据,或者某些行无法转换为数字,则需要进行适当的修改来处理这些情况。

可以参考下

1.首先,打开python,并新建一个python项目;

2.python项目创建好后,在项目中使用open()函数打开一个文件,并创建文件对象;

file = open('test.txt', 'r')
3.文件对象创建好后,使用read()方法获取文件内容;

res = file.read()
4.获取到文件内容后,在for循环中遍历获取文件的总数和数量;

for line in infile:
amount = float(line)
total += amount
length = length + 1
5.最后,获取到文件总数和数量后,两数相除即可求出平均值;

average = total / length
print(average)


# 打开文件并读取内容
with open('numbers.txt', 'r') as file:
    numbers = [int(x) for x in file.read().split()]

# 求平均值
total = sum(numbers)
average = total / len(numbers)

# 输出结果
print("平均值为:", average)