一定很容易,但我仍然无法弄明白。假设我正在使用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')
但是如果我想通过输入他们的输入文件来保存它们,我该怎么办呢?请帮忙。
答案 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')