即使在文件名前加上 'r',openpyxl 也无法在 Windows 上保存
Even with 'r' prepended to filename, openpyxl not able to save on Windows
在 OS X 上,openpyxl.save()
对于名为 'all_done.xslx'.
的文件工作正常
然而,当它在 Windows 上尝试时,结果是:
c:\Users\Tony\Desktop\ROI>python roi_cut6.py > log.txt
Traceback (most recent call last):
File "roi_cut6.py", line 373, in <module>
main()
File "roi_cut6.py", line 369, in main
processSource(wb, 'Gemini', totalGeminiSpends, geminiRevenues)
File "roi_cut6.py", line 269, in processSource
wb.save(r'all_done.xlsx')
File "C:\Python27\lib\site-packages\openpyxl\workbook\workbook.py", line 298,
in save
save_workbook(self, filename)
File "C:\Python27\lib\site-packages\openpyxl\writer\excel.py", line 198, in sa
ve_workbook
writer.save(filename, as_template=as_template)
File "C:\Python27\lib\site-packages\openpyxl\writer\excel.py", line 180, in sa
ve
archive = ZipFile(filename, 'w', ZIP_DEFLATED, allowZip64=True)
File "C:\Python27\lib\zipfile.py", line 756, in __init__
self.fp = open(file, modeDict[mode])
IOError: [Errno 22] invalid mode ('wb') or filename: 'all_done.xlsx'
This post and this post建议在文件名前加上r
。我已经尝试过了(如上面的日志所示)。并且该文件位于当前目录中,因此反斜杠或正斜杠不是问题。该文件在 OS X 和 Windows 上都可以在 Excel 中打开。还有什么问题?不幸的是,我自己无法访问 Windows 机器,因此无法直接在那里进行故障排除。
要保存的文件最初是直接在 Excel 中创建的还是在 openpyxl
中创建的,这有什么不同吗?
这可能是权限错误,与openpyxl无关。使用 r
的想法是完全错误的。使用 os.path
组成一个路径,其中任何用户 运行 脚本都具有写入权限。
在 OS X 上,openpyxl.save()
对于名为 'all_done.xslx'.
然而,当它在 Windows 上尝试时,结果是:
c:\Users\Tony\Desktop\ROI>python roi_cut6.py > log.txt
Traceback (most recent call last):
File "roi_cut6.py", line 373, in <module>
main()
File "roi_cut6.py", line 369, in main
processSource(wb, 'Gemini', totalGeminiSpends, geminiRevenues)
File "roi_cut6.py", line 269, in processSource
wb.save(r'all_done.xlsx')
File "C:\Python27\lib\site-packages\openpyxl\workbook\workbook.py", line 298,
in save
save_workbook(self, filename)
File "C:\Python27\lib\site-packages\openpyxl\writer\excel.py", line 198, in sa
ve_workbook
writer.save(filename, as_template=as_template)
File "C:\Python27\lib\site-packages\openpyxl\writer\excel.py", line 180, in sa
ve
archive = ZipFile(filename, 'w', ZIP_DEFLATED, allowZip64=True)
File "C:\Python27\lib\zipfile.py", line 756, in __init__
self.fp = open(file, modeDict[mode])
IOError: [Errno 22] invalid mode ('wb') or filename: 'all_done.xlsx'
This post and this post建议在文件名前加上r
。我已经尝试过了(如上面的日志所示)。并且该文件位于当前目录中,因此反斜杠或正斜杠不是问题。该文件在 OS X 和 Windows 上都可以在 Excel 中打开。还有什么问题?不幸的是,我自己无法访问 Windows 机器,因此无法直接在那里进行故障排除。
要保存的文件最初是直接在 Excel 中创建的还是在 openpyxl
中创建的,这有什么不同吗?
这可能是权限错误,与openpyxl无关。使用 r
的想法是完全错误的。使用 os.path
组成一个路径,其中任何用户 运行 脚本都具有写入权限。