TL;每次运行脚本时,DR 都需要 python 脚本将新工作表添加到现有的 excel 文件(不覆盖)
我构建了一个网络抓取脚本,从网站提取价格并通过 pandas 的 ExcelWriter 将它们推送到 excel 文件。在当前状态下,每次抓取价格时,文件都会被最新抓取的价格覆盖。
虽然这对于收集最新价格很有效,但如果脚本没有覆盖 .xlsx 文件,而是将每个刮擦作为一张表存储在当前 excel 文件中,那就太好了。我希望我的脚本每次运行时基本上只向当前 excel 文件添加一个新工作表。我会用刮板运行的日期命名每张纸。
当前代码:
with pd.ExcelWriter('{file_path}') as writer:
df.to_excel(writer, sheet_name='{date}')
我知道 openpyxl 用于修改现有的 excel 电子表格。但是,我对 openpyxl 的使用受到限制。任何指针都会有所帮助。如果需要任何进一步的上下文,请告诉我。
.. 我希望我的脚本基本上只是在当前的 excel 文件 每次脚本运行时。
您可以在带有ExcelWriter
引擎的附加模式下使用
openpyxl
:
from datetime import datetime
with pd.ExcelWriter(file_path, mode="a", engine="openpyxl") as writer:
df.to_excel(writer, sheet_name=datetime.now().strftime("%Y%m%d_%H%M%S"))
注意:我们使用时间戳 (
"%Y%m%d_%H%M%S"
) 作为新的 sheetname 以避免脚本在同一天运行多次的情况下名称重叠。