有两个函数都往一个csv文件里实时写入
时间: 2024-03-13 20:46:29 浏览: 14
如果有多个函数需要同时往一个CSV文件中实时写入数据,你可以通过创建一个共享的`csv.writer`对象,并将它传递给这些函数来实现。下面是一个示例代码:
```python
import csv
import time
import threading
# 打开CSV文件
with open('output.csv', mode='a', newline='') as file:
writer = csv.writer(file)
# 写入表头
writer.writerow(['Function', 'Time', 'Value'])
# 定义函数1
def function1():
while True:
value = 1 # 这里用一个常量代替实际的数据
writer.writerow(['Function 1', time.time(), value])
time.sleep(1) # 每隔1秒钟写入一条数据
# 定义函数2
def function2():
while True:
value = 2 # 这里用一个常量代替实际的数据
writer.writerow(['Function 2', time.time(), value])
time.sleep(1) # 每隔1秒钟写入一条数据
# 启动线程
t1 = threading.Thread(target=function1)
t2 = threading.Thread(target=function2)
t1.start()
t2.start()
```
在上面的示例代码中,我们首先以追加模式打开CSV文件,并创建一个csv的writer对象。接下来,我们定义了两个函数`function1()`和`function2()`,它们都将数据写入CSV文件中,每隔1秒钟写入一条。在每次写入数据时,我们都将函数名作为第一列的值写入CSV文件中以区分数据来自于哪个函数。最后,我们使用Python内置的threading库启动两个线程来同时运行这两个函数,并实时将它们的数据写入CSV文件中。