我一直在制作一个简单的python脚本,以练习读取和写入excel文件。我有几个简单的函数,它们可以从excel文件创建数据框,允许用户创建新行(即更新的储蓄余额等),然后将数据框的底部添加新行并将其保存回excel。
基本上每个功能都以:dfTest = pd.read_excel('FinancesExcel.xlsx', sheet_name='Test')
并写入:
dfTestNew = dfTest.append(new_row,ignore_index=True)
with pd.ExcelWriter('FinancesExcel.xlsx') as writer:
dfTestNew.to_excel(writer, sheet_name='Test',index=False)
当我在Spyder中运行它时,效果很好。退出前根据需要进行多次更新并保存,没有问题。
当我尝试在Anaconda Prompt中运行它时,它将加载主菜单...
i = 0
while i != 1:
print("Main Menu")
selection = input('1 - Quick Update\n'
'2 - Full Update\n'
'3 - Overview\n'
'4 - Visualize\n'
'5 - Forecast\n'
'Selection: ')
当前仅构建选项1-3,但它们都以dfTest = pd.read_excel('FinancesExcel.xlsx', sheet_name='Test')
如果您选择选项1-3中的任何一个,它就会显示...
回溯(最近通话最近一次):
File "D:\Python\Projects\PersonalFinance\PersonalFinanceTest.py", line 273, in <module>
dfTest = pd.read_excel('FinancesExcel.xlsx', sheet_name='Test')
File "D:\michaData\lib\site-packages\pandas\io\excel\_base.py", line 304, in read_excel
io = ExcelFile(io, engine=engine)
File "D:\michaData\lib\site-packages\pandas\io\excel\_base.py", line 824, in __init__
self._reader = self._engines[engine](self._io)
File "D:\michaData\lib\site-packages\pandas\io\excel\_xlrd.py", line 21, in __init__
super().__init__(filepath_or_buffer)
File "D:\michaData\lib\site-packages\pandas\io\excel\_base.py", line 353, in __init__
self.book = self.load_workbook(filepath_or_buffer)
File "D:\michaData\lib\site-packages\pandas\io\excel\_xlrd.py", line 36, in load_workbook
return open_workbook(filepath_or_buffer)
File "D:\michaData\lib\site-packages\xlrd\__init__.py", line 111, in open_workbook
with open(filename, "rb") as f:
FileNotFoundError: [Errno 2] No such file or directory: 'FinancesExcel.xlsx'
FinancesExcel.xlsx is definitely there, where it always is when it runs in Spyder. I don't have the file open when I run the script (already learned that lesson).
我无法弄清楚为什么它无法运行。
答案 0 :(得分:0)
在Anaconda Prompt中运行脚本时,检查当前工作目录:
import os
print(f'your current wd is: {os.getcwd()}')
我相信它与您在Spyder上运行的有所不同。您需要提供Excel文件的完整路径。 “路径/到/excel/FinancesExcel.xlsx”