将 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'