请你帮我写一段Python代码,要求如下:读写一个csv文件并用matplotlib的折线图展示csv文件中的数据,并在控制台中实现文件的增删改查
时间: 2024-02-22 08:59:19 浏览: 115
python使用matplotlib绘制折线图的示例代码
好的,以下是符合要求的Python代码示例:
```python
import csv
import os
import matplotlib.pyplot as plt
# 定义CSV文件名
csv_file = 'data.csv'
# 如果CSV文件不存在,就创建一个空的CSV文件
if not os.path.exists(csv_file):
with open(csv_file, 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['time', 'value'])
# 读取CSV文件中的数据
with open(csv_file, 'r', newline='') as f:
reader = csv.reader(f)
headers = next(reader)
data = list(reader)
# 展示CSV文件中的数据
x = [row[0] for row in data]
y = [row[1] for row in data]
plt.plot(x, y)
plt.xlabel(headers[0])
plt.ylabel(headers[1])
plt.title('Data Plot')
plt.show()
# 在控制台中实现文件的增删改查
while True:
print('1. Add data')
print('2. Delete data')
print('3. Update data')
print('4. View data')
print('5. Exit')
choice = input('Select an option: ')
if choice == '1':
time = input('Enter time: ')
value = input('Enter value: ')
with open(csv_file, 'a', newline='') as f:
writer = csv.writer(f)
writer.writerow([time, value])
print('Data added successfully.')
elif choice == '2':
time = input('Enter time to delete: ')
with open(csv_file, 'r', newline='') as f:
reader = csv.reader(f)
data = list(reader)
with open(csv_file, 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(headers)
for row in data:
if row[0] != time:
writer.writerow(row)
print('Data deleted successfully.')
elif choice == '3':
time = input('Enter time to update: ')
value = input('Enter new value: ')
with open(csv_file, 'r', newline='') as f:
reader = csv.reader(f)
data = list(reader)
with open(csv_file, 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(headers)
for row in data:
if row[0] == time:
row[1] = value
writer.writerow(row)
print('Data updated successfully.')
elif choice == '4':
with open(csv_file, 'r', newline='') as f:
reader = csv.reader(f)
headers = next(reader)
data = list(reader)
print(headers)
for row in data:
print(row)
elif choice == '5':
break
else:
print('Invalid choice. Please try again.')
```
代码说明:
1. 首先判断CSV文件是否存在,如果不存在就创建一个空的CSV文件。
2. 使用csv模块读取CSV文件中的数据,并用matplotlib绘制折线图展示数据。
3. 使用while循环实现文件的增删改查功能。
4. 对于增加数据,使用csv模块的writer对象将新数据写入CSV文件。
5. 对于删除数据,首先使用csv模块读取CSV文件中的所有数据,然后使用writer对象重新写入CSV文件,不包括需要删除的数据。
6. 对于更新数据,同样需要先读取CSV文件中的所有数据,然后使用writer对象更新需要修改的数据,并将所有数据重新写入CSV文件。
7. 对于查看数据,使用csv模块读取CSV文件中的所有数据,并在控制台中打印出来。
8. 对于退出程序,使用break语句跳出while循环。
阅读全文