我正在将应用程序从经典的Tkinter GUI迁移到基于Django云的应用程序,并收到
ValueError: Invalid file path or buffer object type: <class 'bool'>
当试图运行一个调用熊猫的函数时。
Exception Location: C:\Users\alfor\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\io\common.py in get_filepath_or_buffer, line 232
我没有做太多尝试,因为在搜索中找不到相同的错误。
我不认为此功能甚至可以全部运行,因为我的媒体文件夹没有获得要保存文件的新目录。.但是我可能错了。
出现问题的函数的开始看起来像这样:
def runpayroll():
man_name = 'Jessica Jones'
sar_file = os.path.isfile('media/reports/Stylist_Analysis.xls')
sar_file2 = os.path.isfile('media/reports/Stylist_Analysis.xls')
tips_file = os.path.isfile('media/reports/Tips_By_Employee_Report.xls')
hours_wk1_file = os.path.isfile('media/reports/Employee_Hours1.xls')
hours_wk2_file = os.path.isfile('media/reports/Employee_Hours2.xls')
retention_file = os.path.isfile('media/reports/SC_Client_Retention_Report.xls')
efficiency_file = os.path.isfile('media/reports/Employee_Service_Efficiency.xls')
df_sar = pd.read_excel(sar_file,
sheet_name=0, header=None, skiprows=4)
df_sar2 = pd.read_excel(sar_file2,
sheet_name=0, header=None, skiprows=4)
df_tips = pd.read_excel(tips_file,
sheet_name=0, header=None, skiprows=0)
df_hours1 = pd.read_excel(hours_wk1_file,
header=None, skiprows=5)
df_hours2 = pd.read_excel(hours_wk2_file,
header=None, skiprows=5)
df_retention = pd.read_excel(retention_file, sheet_name=0,
header=None, skiprows=8)
df_efficiency = pd.read_excel(efficiency_file, sheet_name=0,
header=None, skiprows=5)
我从此功能的其余部分更改的唯一代码是我假设的代码,因为它只是一个文件位置,所以没关系。
writer = pd.ExcelWriter('/media/payroll.xlsx', engine='xlsxwriter')
而不是使用我使用的tkinter向用户询问文件保存位置...
with open(file_path, 'rb') as f:
response = HttpResponse(f, content_type=guess_type(file_path)[0])
response['Content-Length'] = len(response.content)
return response
预期结果是打开一些excel工作表,对数据框做一些工作,然后向用户吐出excel工作表。
答案 0 :(得分:3)
我相信您需要更改以下文件中的每个文件:
sar_file = os.path.isfile('media/reports/Stylist_Analysis.xls')
收件人:
sar_file = 'media/reports/Stylist_Analysis.xls'
如果path是现有的常规文件,则返回 True 。这遵循符号链接,因此,对于同一路径,islink()和isfile()都可以为true。