读取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)