python matplotlib保存情节

时间:2013-05-16 18:12:52

标签: python matplotlib

一定很容易,但我仍然无法弄明白。假设我正在使用glob模块读取大量的txt文件。并进行一些处理,然后使用matplotlib绘制它们。

import glob
ascii = sorted(glob.glob('C:/Users/ENAMUL/PYTHON/*.txt')) 
for count,i in enumerate(ascii):
........
........

现在我要保存这些数字。我可以这样做,通过计算数字来节省它们。

plt.savefig(str(count)+'png') 

但是如果我想通过输入他们的输入文件来保存它们,我该怎么办呢?请帮忙。

2 个答案:

答案 0 :(得分:2)

在循环中,i包含文件的名称,因此:

import os.path

....

plt.savefig(os.path.splitext(os.path.basename(i))[0] + '.png')

它的工作原理如下。 os.path.basename返回文件名:

In [2]: os.path.basename('foo/bar/baz.bat')
Out[2]: u'baz.bat'

然后splitext显而易见:

In [3]: os.path.splitext(os.path.basename('foo/bar/baz.bat'))
Out[3]: (u'baz', u'.bat')

所以:

In [4]: os.path.splitext(os.path.basename('foo/bar/baz.bat'))[0] + '.png'
Out[4]: u'baz.png'

如果您想保留路径,只需移除basename来电,并仅使用splitext

In [5]: os.path.splitext('foo/bar/baz.bat')[0] + '.png'
Out[5]: u'foo/bar/baz.png'

答案 1 :(得分:0)

您将文件名存储在ascii中 - 因此您可以在保存图片时使用它:

plt.savefig(ascii[count] + '.png')