Seite 1 von 1

Python-Äquivalent zu num2str von Matlab gesucht

Verfasst: Donnerstag 10. Juli 2008, 09:20
von rt
Hallo zusammen,

ich habe die Ehre, einen Python-Skript zur automatischen Speicherung von einer Versuchsreihe zu erstellen. Jeder Dateiname soll hierbei durch eine Laufnummer des Versuchs (z.B. i) gekennzeichnet werden. Der Speicheroperand lautet SaveRefCapture(a), wobei a ein string mit Dateinamenpfad ist.

Zum Einfügen der Versuchslaufnummer i in den Dateinamen a muss ich diese Nummer zum String konvertieren, damit ich einzelne Buchstaben des Dateinamens besetzten kann.

Unter Matlab würde das z.B. so aussehen:
suffix='.mat';
a='D:\\Ordner\Messung';
b=length(a)+1;
c=b+length(num2str(i))-1;
a (b:c)=num2str(i);
d=c+1;
e=d+length(suffix)-1;
a (d:e)=suffix;
save (a);

Also, suche ich nach einem Python-Pendant für num2str von Matlab.
Für Hinweise wäre ich sehr dankbar.

Mit freundlichem Gruß
Maxim

Verfasst: Donnerstag 10. Juli 2008, 09:27
von Darii

Code: Alles auswählen

num1 = int("2") # ganze Zahl
num2 = float("4.2e-23") # rationale Zahl
print num1 * num2
#umgekehrt geht das jeweils mit str

Verfasst: Donnerstag 10. Juli 2008, 09:47
von BlackJack
Zeichenkettenformatierung dürfte die naheliegendste Lösung sein.

Wobei man die formatierte Zahl rechts durch Nullen auffüllen sollte, dann werden die Dateien beim alphabetischen sortieren in der richtigen Reihenfolge aufgeführt:

Code: Alles auswählen

In [111]: r'D:\\Ordner\Messung%d.mat' % 42
Out[111]: 'D:\\\\Ordner\\Messung42.mat'

In [112]: r'D:\\Ordner\Messung%04d.mat' % 42
Out[112]: 'D:\\\\Ordner\\Messung0042.mat'
Der Matlab-Quelltext dafür sieht aber mehr als umständlich aus!

Ansonsten sollte man als Anfänger das Tutorial aus der Dokumentation durcharbeiten und PEP8, den Style Guide, lesen. `SaveRefCapture` würde in Python nämlich üblicherweise `save_ref_capture` heissen.

Verfasst: Donnerstag 10. Juli 2008, 17:58
von rt
Hat mir weitergeholfen. Besten Dank!
Viele Grüße
Maxim