将输入文件名中的元素合并到Python中的图标题和图形文件名中

时间:2016-05-24 05:19:15

标签: python matlab

我的代码使用glob遍历多个文件,为每个输入文件生成一个数字,并使用savefig保存它们。我试图将当前输入文件名称的元素合并到当前图表的标题中,也合并到当前输出文件的名称中。 This question解决了如何使用当前文件名,但我不想使用整个文件名。

例如,假设200302182300_040842.oax是当前文件名,我想将图表命名为“18/02/2003 2300UTC Atmospheric Conditions (sea breeze day)”并输出文件18/02/2003 2300UTC Atmospheric Conditions (sea breeze day).png如何划分输入文件名并在图标题和输出文件名中使用不同的元素(例如年,月,日)?

我正在使用的代码示例如下。

import glob
import os
import matplotlib.pyplot as plt

os.chdir('X:/stormdays')
for file in glob.glob("*.oax"):
    spc_file = open(file, 'r').read()
    try:   
        plt.title('140616/1900 (Observed) - Sea Breeze Day', fontsize=12, loc='left')
        plt.savefig('X:/stormgraph.png')


    except Exception:
        pass

1 个答案:

答案 0 :(得分:1)

这是执行此操作的matlab代码。由于你不能在文件名中包含'/',我将其替换为' - '。

files = dir('C:\directory\.*oax')
for ind = 1:numel(files)
    filename = files(ind).name
    newName = [filename(7:8),'-',filename(5:6),'-',filename(1:4),' ',filename(9:12),' (Observed) - Sea Breeze Day','.png']
    figureHandle = figure()
    \\your code to plot 
    savefig(figureHandle,newName)
end

Python代码(基于您的代码)

import glob
import os
import matplotlib.pyplot as plt

os.chdir('X:/stormdays')
for file in glob.glob("*.oax"):
    spc_file = open(file, 'r').read()
    try:   
        newName = file[6:8] + '-' + file[4:6] + '-' + file[0:4] + ' ' + file[8:12] +  ' (Observed) - Sea Breeze Day'
        plt.title(newName, fontsize=12, loc='left')
        plt.savefig('X:/' + newName + '.png')


    except Exception:
        pass