2014-12-08 236 views
2

我想保存一個python劇情。使用MacOS,一切運行順利,但在Windows7下失敗。保存與matplotlib python劇情在windows下失敗

蟒蛇,命令如下:

savefig('C:\Users\xyz\AppData\Local\Temp\pyplot1468046843481608342.png') 

錯誤的messge是這一個:

Traceback (most recent call last): 
File "C:\Users\xyz\AppData\Local\Temp\analyze3744796441786382480.py", line 340, in <module> 
savefig('C:\Users\xyz\AppData\Local\Temp\pyplot1468046843481608342.png') 
File "C:\Anaconda\lib\site-packages\matplotlib\pyplot.py", line 577, in savefig 
res = fig.savefig(*args, **kwargs) 
File "C:\Anaconda\lib\site-packages\matplotlib\figure.py", line 1470, in savefig 
self.canvas.print_figure(*args, **kwargs) 
File "C:\Anaconda\lib\site-packages\matplotlib\backend_bases.py", line 2194, in print_figure 
**kwargs) 
File "C:\Anaconda\lib\site-packages\matplotlib\backends\backend_agg.py", line 526, in print_png 
filename_or_obj = open(filename_or_obj, 'wb') 
IOError: [Errno 22] invalid mode ('wb') or filename: 'C:\\Users\xyz\\AppData\\Local\\Temp\\pyplot1468046843481608342.png' 

這是Python我使用:

Python 2.7.8 :: Anaconda 2.1.0 (32-bit) 

能有人解釋問題的原因?

+0

IIRC,你可以使用正斜槓也是在Windows 'savefig( 'C:/shorter/path/pyplot1468046843481608342.png')' 並且將正常運行是。 OTOH清潔和便攜的方式 構建路徑名是使用 ['os.path'](http://pymotw.com/2/ospath/)模塊。 上面的鏈接引用:「使用os.path 模塊中包含的函數編寫代碼以使用 多個平臺上的文件很容易,即使不打算在平臺 之間移植的程序也應該使用os.path for可靠的文件名解析「。 – gboffi 2014-12-08 10:22:11

+0

感謝與os.path一起工作的提示。我會看看。使用Java.io.File.createTempFile()使用java生成路徑名。這就是爲什麼,我不會用手改變任何東西。 – July 2014-12-08 13:18:34

回答