编写一个 Python 程序,该程序将文本文件作为输入并返回文件中所有数值的平均值。
时间: 2024-05-10 11:21:28 浏览: 7
以下是一个计算文本文件中所有数值平均值的 Python 程序:
```python
import re
filename = input("请输入文件名:")
try:
with open(filename, "r") as f:
content = f.read()
except FileNotFoundError:
print("文件不存在!")
exit()
# 使用正则表达式查找文件中的所有数字
nums = re.findall(r"\d+\.?\d*", content)
# 将数字列表转换为浮点数列表
nums = list(map(float, nums))
# 计算平均值
avg = sum(nums)/len(nums)
print("平均值为:", avg)
```
该程序首先要求用户输入文件名,然后尝试打开该文件并读取其内容。如果文件不存在,则会显示错误消息并退出程序。
接下来,程序使用正则表达式查找文件中的所有数字,并将数字列表转换为浮点数列表。最后,程序计算数字列表的平均值并将其打印出来。
相关问题
编写一个 Python 程序,该程序将文本文件作为输入并返回文件中所有数值的平均值。并非文件中的每一行都是数字。
以下是一个示例程序:
```python
def calculate_average(file_path):
total = 0
count = 0
with open(file_path, 'r') as file:
for line in file:
try:
number = float(line.strip())
total += number
count += 1
except ValueError:
pass
if count == 0:
return 0
else:
return total / count
file_path = 'example.txt'
average = calculate_average(file_path)
print(f'The average value in {file_path} is: {average}')
```
在这个程序中,我们定义了一个名为 `calculate_average` 的函数,它接受一个文件路径作为参数并返回文件中所有数值的平均值。我们使用 `with open(file_path, 'r') as file:` 来打开文件,在循环中逐行读取每个行。我们使用 `try` 和 `except` 来检查当前行是否可以转换为浮点数。如果是,我们将当前行的值添加到 `total` 中,并增加 `count` 的值。如果不是,我们跳过当前行。最后,我们检查 `count` 是否为零,如果是,则返回 0,否则返回 `total` 除以 `count` 的结果。
在主程序中,我们定义了一个文件路径,并将其传递给 `calculate_average` 函数,然后打印结果。
编写一个Python程序来计算文本文件中的行数。
您好,可以使用以下代码来计算文本文件中的行数:
```python
with open('file.txt', 'r') as f:
lines = f.readlines()
num_lines = len(lines)
print("Number of lines in the file:", num_lines)
```
其中,'file.txt' 为要计算行数的文本文件路径。程序读取文本文件中的内容,返回行数并打印输出。