python实时读取csv
时间: 2025-01-02 09:33:27 浏览: 5
### 实现Python实时读取CSV文件
为了实现Python程序能够实时读取CSV文件,可以采用循环监控文件变化的方式。当检测到目标CSV文件有更新时,立即重新加载数据至内存中的DataFrame对象以便进一步处理。
对于Pandas库的应用场景下,下面展示了一个简单的例子来说明如何利用`pandas.read_csv()`函数配合自定义逻辑达到近似于“实时”的效果:
```python
import time
import os
import pandas as pd
def get_file_mod_time(file_path):
"""获取文件最后修改时间"""
return os.path.getmtime(file_path)
csv_file = "colors.csv"
last_modified = None
while True:
current_mod_time = get_file_mod_time(csv_file)
if last_modified != current_mod_time:
try:
# 定义列名并读取CSV文件
df = pd.read_csv(csv_file, header=None, names=['Color Name', 'Hex Value'])
print(f"File changed at {time.strftime('%Y-%m-%d %H:%M:%S')}")
print(df.head()) # 打印前几行作为示例
last_modified = current_mod_time
except Exception as e:
print(e)
time.sleep(1) # 设置休眠间隔防止CPU占用过高
```
上述脚本通过不断轮询检查指定路径下的CSV文件是否有新的更改记录[^1]。一旦发现变动,则调用`pd.read_csv()`方法刷新存储的数据表,并打印最新内容用于验证操作成功与否。需要注意的是,在实际生产环境中应当考虑更高效的通知机制代替简单粗暴的时间延迟策略,比如inotify (Linux/Unix平台特有),或是其他跨平台解决方案如watchdog库等。
如果希望仅依靠标准库而不引入额外依赖项的话,也可以借助内置模块完成相似功能,不过这通常意味着更低级别的I/O控制以及更加复杂的编码过程。
阅读全文