1

这一定很容易,但我仍然无法弄清楚。假设我正在使用 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') 

但是如果我想通过输入文件名来保存它们,我该怎么做呢?请提供任何帮助。

4

2 回答 2

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'
于 2013-05-16T18:27:07.870 回答
0

您将文件名存储在ascii- 因此您应该能够在保存图形时使用它:

plt.savefig(ascii[count] + '.png')
于 2013-05-16T18:20:26.997 回答