将 Excel 文件输出到与 Python 代码不同的目录,同时将文件命名为目录以外的名称
Output an Excel file to a separate directory than the Python code, also name the file something other than the directory
我有一个代码可以从多个建模文件中获取数据,对数据进行一些计算并将数据输出到 Excel。我让代码获取目录中的所有文件,并在一个 Excel 工作簿中为每个模型创建一个 sheet。我设置了它,所以输出的 Excel 文件位于所有文件的目录中,而不是代码所属的目录中。不过,我这样做的方式使 Excel 的名称成为第一个模型的名称,末尾带有 .xlsx。有没有一种方法可以指定目录,还可以将文件命名为我选择的名称?这是代码示例:
pythonfolder = C:User\Limit\PythonCodes
idir = r'C:User\Limit\ModelFiles'
ipfiles = os.listdir(idir)
ipfiles = [s for s in ipfiles if bool(re.search('.\.sosat', s))]
opf = "excelfile.xlsx"
dflist = list()
for fi in ipfiles:
ipf = idir + '\' + fi
opf = idir + '\' + re.sub('\.sosat', '.xlsx', fi)
df = SMA_finder(ipf, opf, fi)
dflist.append(df)
npf = ipfiles
with pd.ExcelWriter(opf) as writer:
for i in range(len(dflist)):
sheetname = npf[i]
dflist[i].to_excel(writer, sheet_name=sheetname)
由于信息的敏感性,我无法添加更多代码,但代码将写入名称与第一个文件匹配的 Excel 文件,或者如果我在 pd.ExcelWriter 中更改 opf( opf),Excel 文件将在代码所在的文件夹中创建。我知道由于缺少支持代码,回答这个问题可能有点棘手,但我们感谢任何帮助或想法。
当然只是:
opf = idir + '\yourfilename.xlsx'
或从变量(并使用 f-strings 假设 Python 3.6 或更好):
full_output_filename = f'{idir}\{output_filename}.xlsx'
我有一个代码可以从多个建模文件中获取数据,对数据进行一些计算并将数据输出到 Excel。我让代码获取目录中的所有文件,并在一个 Excel 工作簿中为每个模型创建一个 sheet。我设置了它,所以输出的 Excel 文件位于所有文件的目录中,而不是代码所属的目录中。不过,我这样做的方式使 Excel 的名称成为第一个模型的名称,末尾带有 .xlsx。有没有一种方法可以指定目录,还可以将文件命名为我选择的名称?这是代码示例:
pythonfolder = C:User\Limit\PythonCodes
idir = r'C:User\Limit\ModelFiles'
ipfiles = os.listdir(idir)
ipfiles = [s for s in ipfiles if bool(re.search('.\.sosat', s))]
opf = "excelfile.xlsx"
dflist = list()
for fi in ipfiles:
ipf = idir + '\' + fi
opf = idir + '\' + re.sub('\.sosat', '.xlsx', fi)
df = SMA_finder(ipf, opf, fi)
dflist.append(df)
npf = ipfiles
with pd.ExcelWriter(opf) as writer:
for i in range(len(dflist)):
sheetname = npf[i]
dflist[i].to_excel(writer, sheet_name=sheetname)
由于信息的敏感性,我无法添加更多代码,但代码将写入名称与第一个文件匹配的 Excel 文件,或者如果我在 pd.ExcelWriter 中更改 opf( opf),Excel 文件将在代码所在的文件夹中创建。我知道由于缺少支持代码,回答这个问题可能有点棘手,但我们感谢任何帮助或想法。
当然只是:
opf = idir + '\yourfilename.xlsx'
或从变量(并使用 f-strings 假设 Python 3.6 或更好):
full_output_filename = f'{idir}\{output_filename}.xlsx'