2016-05-24 4 views
0

Mein Code durchläuft mehrere Dateien unter Verwendung von glob, erstellt eine Zahl für jede Eingabedatei und speichert sie unter Verwendung von savefig. Ich versuche, Elemente des Namens der aktuellen Eingabedatei sowohl in den Titel des aktuellen Plots als auch in den Namen der aktuellen Ausgabedatei einzufügen. This question adressiert die Verwendung des aktuellen Dateinamens, aber ich möchte nicht den ganzen Dateinamen verwenden.Einbinden von Elementen aus dem Namen der Eingabedatei in den Bildtitel und den Namen der Figur in Python

Zum Beispiel, sagen 200302182300_040842.oax der aktuelle Dateiname ist, würde Ich mag die Handlung „18/02/2003 2300UTC Atmospheric Conditions (sea breeze day)“ nennen und die Ausgabedatei 18/02/2003 2300UTC Atmospheric Conditions (sea breeze day).png Wie kann ich die Eingabedateinamen aufzuteilen und verwenden die verschiedenen Elemente (zB Jahr, Monat, Tag) innerhalb des Plottitels und des Ausgabedateinamens?

Ein Beispiel für den Code, den ich verwende, ist unten.

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 
+0

Ok @ David, bitte Frage geändert, in dem ich nicht relevanten Codebeispiele entfernt haben. –

+0

Viel besser! Ohne python zu wissen kann ich deine Frage nicht beantworten, aber es ist jetzt viel einfacher zu verstehen. – David

+0

Wie erhält man atmosphärische Bedingungen (wie "Atmospheric Conditions) (Meeresbrisen-Tag)" aus dem Dateinamen? Oder ist es für alle Dateien gleich? – Nishant

Antwort

1

Hier ist der Matlab-Code, um dies zu tun. Da Sie in Dateinamen kein '/' haben können, ersetze ich es durch '-'.

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-Code (basierend auf Ihren Code)

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 
+0

Ist dieser Matlab-Code überhaupt auf Python übertragbar? –

+0

Hallo @Nishant, hatte ein paar Probleme beim Laufen, aber jetzt läuft es perfekt. Vielen Dank! Antwort angenommen. –

Verwandte Themen