刷新excel并使用python保存带有日期和时间前缀的文件



我是python新手。我想刷新一个excel文档,并保存文件的日期时间后缀像filename_20220706_1554.

我写这个脚本:

import win32com.client
import time
from datetime import datetime

print("Refresh_excel function has started")
xlapp = win32com.client.DispatchEx("Excel.Application")
wb = xlapp.Workbooks.Open(r"C:folderfilename_.xlsx")
wb.RefreshAll()
time.sleep(5)
datestring = datetime.strftime(datetime.now(), '%Y%m%d-%H%M')
print(datestring)
wb.Save(r'C:folderfilename_{datestring}.xlsx')
xlapp.Quit()

但是会抛出这个错误:

File "C:Usersuntitled0.py", line 12, in <module>
wb.Save(r'C:folderfilename_{datestring}.xlsx')
TypeError: Save() takes 1 positional argument but 2 were given

任何想法?

您应该使用wb.SaveAs(...)而不是wb.Save()

这个错误意味着你传递一个不正确的数量的参数。

看起来你打算使用f'string with {arguments}',但却使用了r'string with {arguments}',这打破了字符串替换逻辑。

r''字符串是原始字符串,而f''字符串格式化字符串。

但是,不能在格式化字符串中使用N。你需要原始字符串。

您可能应该分两步构建文件名:

filename = f'Hourly_NPI_Sales_Report_{datestring}.xlsx'
filepath = os.path.join(r'C:NPI', filename)

最新更新