在OS X上,openpyxl.save()
對於名爲'all_done.xslx'的文件正常工作。即使將'r'作爲文件名前綴,openpyxl無法在Windows上保存
然而,它試圖在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後和this後建議的文件名前添加r
。這我已經嘗試過了(正如在上面的日誌中可以看到的那樣)。該文件位於當前目錄中,所以它不是反斜槓或正斜槓的問題。該文件可以在OS X和Windows上的Excel中打開。還有什麼可能是這個問題?不幸的是,我自己無法訪問Windows mahcine,因此無法直接在那裏進行故障排除。
保存到的文件最初是直接在Excel中創建的,還是與openpyxl
?
不確定。這當然不是我的腳本直接使用的,但我可以在openpyxl.excel.py中看到它被openpyxl嚴重使用。 – Pyderman
是的,沒有路徑,因爲文件和腳本在同一個目錄中。 'wb.save(r'all_done.xlsx')' – Pyderman
Windows機器上的'openpyxl'版本多大? –