我有一个单一的源 excel 文件,我每个月都会使用 Python 清理该文件,以便仅与我的团队共享选定的数据。我想每个月创建一个新的 excel 文件,而不是每个月更新同一个文件。
Ex - 我已经运行了 Python 脚本并为六月创建了一个干净的文件。当它在 7 月份运行时,我希望创建一个新文件,而不是更新 6 月份的文件。
希望这是有道理的。提前致谢!
import os.path
from datetime import datetime
curr_date = datetime.strftime(datetime.now(), '%B')
save_path = 'T:/1. 2021 Timesheets n Bandwidth Tracker/Project Database/RA Copy/'
name_of_file = "PRO Project DB_2021_RA_" + curr_date.upper()
completeName = os.path.join(save_path, name_of_file+".xlsx")
file1 = open(completeName, "w")
答案 0 :(得分:0)
您能否分享将文件另存为 .xls 或 .xlsx 文件的代码行?
代码是否也在旧的 excel 文件中读取?
如果您打开 Python 脚本并按 Ctrl+F 输入文件名,那可能会有所帮助。
最简单的解决方案是每月手动更改文件名。只需在保存它的代码部分的文件名末尾添加:“Jul21”(下个月“Aug21”等)。如果旧文件加载到 Python 中,您还需要更改其中的文件名以匹配。
答案 1 :(得分:0)
我可能会为此推荐 pandas,但您需要为此使用第三方库,例如 xlsxwriter 或 openpyxl。
如果您不想使用 Pandas,下面是一个使用库 xlsxwriter
的简单示例,但这取决于您的数据的格式。我也在使用 pathlib
,因为它使一些事情变得更容易。
import xlsxwriter
from pathlib import Path
from datetime import datetime as dt
# Create a folderpath Path object.
output_folder = Path(r"T:/1. 2021 Timesheets n Bandwidth Tracker/Project Database/RA Copy")
# Set your timestamp variables.
today = dt.today()
this_month = today.strftime("%B") # June
this_year = today.year # 2021
# Create output path for excel file with month and year added.
full_xl_path = output_folder.joinpath(f"PRO Project DB_{this_year}_RA_{this_month}.xlsx")
# Create workbook and worksheet from given variables.
workbook = xlsxwriter.Workbook(full_xl_path)
worksheet = workbook.add_worksheet(name="Sheet1")
# Data sample
columns = ["employee", "date", "hours"]
data = [
["john", "2021-06-26", 8],
["dan", "2021-06-26", 8],
["joanna", "2021-06-27", 8],
]
# For each row
for r in range(0, len(data) + 1):
# If this is the firs row.
if r == 0:
# Write column headers.
for h in range(len(columns)):
worksheet.write(r, c, columns[h])
else:
# Reset r to zero for indexing the data set.
adjusted_r = r - 1
for c in range(len(data[adjusted_r])):
worksheet.write(r, c, data[c])
# Close workbook once complete.
workbook.close()