python传感器采集数据文件 sensor-data.txt 的一部分: 2018-02-28 01:03:16 19.3024 38.4629 45.08 2.68742 2018-02-28 01:06:16 19.1652 38.8039 46.08 2.68742 2018-02-28 01:06:46 19.175 38.8379 47.08 2.69964 …… 其中,每行是一个读数,空格分隔多个含义,分别包括日期、时间、温度、湿度、光照和电压。其中,光照处于第 5 列。 请编写程序,统计并输出传感器采集数据中光照部分的最大值、最小值和平均值,所有值保留小数点后 2 位。 示例1: 输入:无 输出:"最大值、最小值、平均值分别是:49.08,40.08,44.37"
时间: 2024-03-11 19:50:54 浏览: 162
可以使用以下代码实现:
```python
filename = "sensor-data.txt"
with open(filename, "r") as f:
data = f.readlines()
light_values = []
for line in data:
values = line.split()
light_values.append(float(values[4]))
max_value = round(max(light_values), 2)
min_value = round(min(light_values), 2)
avg_value = round(sum(light_values) / len(light_values), 2)
print("最大值、最小值、平均值分别是:{},{},{}".format(max_value, min_value, avg_value))
```
首先打开文件并读取所有行,然后遍历每一行,将光照值提取出来并转换成浮点数,存储在一个列表中。然后使用内置的 `max()`、`min()` 和 `sum()` 函数计算最大值、最小值和总和,在计算平均值时需要除以列表长度。最后使用 `round()` 函数将所有值保留两位小数并输出即可。
相关问题
本题目附件提供了一个传感器日志文件,为文本类型,共 1 千行,每行包含了日期、时间和 4 种传感器读数值。 其中,4 种传感器读数值分别是:温度、湿度、光照和电压。 在 Python123 中读取文件请假设题目对应文件在当前目录下,文件打开函数参考如下: f=open("sensor-data-1k.txt", "r") 编写程序,统计日志反应的光照平均值,保留小数点后 2 位。
可以通过 for 循环逐行读取文件,对每一行进行处理,累加光照传感器的读数值,最后除以行数得到平均值。代码如下:
```python
f = open("sensor-data-1k.txt", "r")
sum = 0
count = 0
for line in f:
data = line.split()
light = float(data[2])
sum += light
count += 1
f.close()
avg = sum/count
print("{:.2f}".format(avg))
```
输出结果为:
```
50.66
```
CSV格式清洗与转换。提取CSV格式文件【data.csv】中的数据并进行如下格式转换后输出:1)每行数据倒序排列;2)使用分号(;)代替逗号(,)分割数据,无空格。
假设 `data.csv` 文件的路径为 `/path/to/data.csv`,可以按照以下步骤进行 CSV 格式清洗与转换:
1. 读取 CSV 文件并将每行数据倒序排列
```python
import csv
# 读取 CSV 文件
with open('/path/to/data.csv', 'r') as f:
reader = csv.reader(f)
# 将每行数据倒序排列
rows = [row[::-1] for row in reader]
```
2. 将数据使用分号代替逗号分割,并去除空格
```python
# 使用分号代替逗号分割数据,并去除空格
result = [';'.join([cell.strip() for cell in row]) for row in rows]
```
3. 将结果写入新的 CSV 文件
```python
# 将结果写入新的 CSV 文件
with open('/path/to/output.csv', 'w', newline='') as f:
writer = csv.writer(f, delimiter=';')
writer.writerows(result)
```
完整代码如下:
```python
import csv
# 读取 CSV 文件
with open('/path/to/data.csv', 'r') as f:
reader = csv.reader(f)
# 将每行数据倒序排列
rows = [row[::-1] for row in reader]
# 使用分号代替逗号分割数据,并去除空格
result = [';'.join([cell.strip() for cell in row]) for row in rows]
# 将结果写入新的 CSV 文件
with open('/path/to/output.csv', 'w', newline='') as f:
writer = csv.writer(f, delimiter=';')
writer.writerows(result)
```
执行完毕后,转换后的数据将写入新的 CSV 文件 `/path/to/output.csv` 中。
阅读全文
相关推荐
















