Python-Äquivalent zu num2str von Matlab gesucht

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
rt
User
Beiträge: 2
Registriert: Donnerstag 10. Juli 2008, 08:32
Wohnort: Aachen

Donnerstag 10. Juli 2008, 09:20

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
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Donnerstag 10. Juli 2008, 09:27

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
BlackJack

Donnerstag 10. Juli 2008, 09:47

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.
rt
User
Beiträge: 2
Registriert: Donnerstag 10. Juli 2008, 08:32
Wohnort: Aachen

Donnerstag 10. Juli 2008, 17:58

Hat mir weitergeholfen. Besten Dank!
Viele Grüße
Maxim
Antworten