Python-每小时复制一次实时Excel文件-无需刷新数据



我正在处理一个'Live'Excel文件,该文件的数据连接每5分钟刷新一次(包括时间戳(。由于每次刷新都会丢失以前的数据,出于数据分析的目的,我想每小时将数据复制到一个新文件中。

我写了这段代码,它通常是有效的,因为它每小时通过从实时Excel复制数据来创建一个新文件:

import pandas as pd
from datetime import datetime as dt
import schedule
import time
df = pd.read_excel("import.xlsx", sheet_name='Raw Data')
def export():
now =dt.now()
dt_string = now.strftime("%Y%m%d %H%M%S")
df.to_excel("export" + dt_string + ".xlsx", sheet_name='Raw Data')
schedule.every(3600).seconds.do(export)
while 1:
schedule.run_pending()
time.sleep(1)

不幸的是,所有新的Excel文件都有相同的数据和时间戳(从我开始运行代码的那一刻起(。首先我想,除了刷新数据外,还需要每x分钟保存一次实时excel文件,然而,不时手动保存文件并没有什么区别。

我可以对我的Python代码进行任何更改,使每个副本每小时都有最新的数据,而不是只有运行开始时的初始数据吗?

我认为数据没有更改的原因是因为您的df变量在export((函数之外设置了一次。要解决这个问题,你只需要将任务转移到你的功能中:

import pandas as pd
from datetime import datetime as dt
import schedule
import time
def export():
df = pd.read_excel("import.xlsx", sheet_name='Raw Data') #Moved this line
now =dt.now()
dt_string = now.strftime("%Y%m%d %H%M%S")
df.to_excel("export" + dt_string + ".xlsx", sheet_name='Raw Data')
schedule.every(3600).seconds.do(export)
while 1:
schedule.run_pending()
time.sleep(1)

最新更新