Sound aufnehmen?
-
- User
- Beiträge: 408
- Registriert: Freitag 7. Oktober 2005, 14:37
- Wohnort: Berlin
- Kontaktdaten:
Ikke nochmal,
Wenn ich die Parameter als Liste übergebe, findet Sox die angegebene Datei nicht:
übergebe ich das Ganze als String, ist alles OK.
('shell=True' verhindert unter Windows, dass ein zusätzliches DOS-Fenster geöffnet wird)
Frage:
In welcher Form übergebe ich die Parameter innerhalb der Liste ?
Denn wenn ich dennoch weiterhin auf die Leerzeichen zwischen den Parametern achten muß, sehe ich den Vorteil gegenüber einem String nicht mehr !?
Gruß,
Seven
Code: Alles auswählen
args = ['C:/Ablage/sox12181/sox -q', 'C:/Temp/Test.wav', '-e stat -v']
Code: Alles auswählen
proz = subprocess.Popen(args)
File "C:\Programme\Python25\lib\subprocess.py", line 593, in __init__
errread, errwrite)
File "C:\Programme\Python25\lib\subprocess.py", line 815, in _execute_child
startupinfo)
WindowsError: [Error 2] Das System kann die angegebene Datei nicht finden
übergebe ich das Ganze als String, ist alles OK.
Code: Alles auswählen
args = ''.join(('C:/Ablage/sox12181/sox -q ', 'C:/Temp/Test.wav', ' -e stat -v'))
Frage:
In welcher Form übergebe ich die Parameter innerhalb der Liste ?
Denn wenn ich dennoch weiterhin auf die Leerzeichen zwischen den Parametern achten muß, sehe ich den Vorteil gegenüber einem String nicht mehr !?
Gruß,
Seven
In Deinem Beispiel wird das Programm 'C:/Ablage/sox12181/sox -q' zum Ausführen nicht gefunden. Das Programm gibt's ja auch nicht, es heisst nur 'C:/Ablage/sox12181/sox' und '-q' ist ein Argument. Du musst in der Liste alle Argumente *einzeln* aufführen, also im Grunde das Angeben, was das Programm als `sys.argv` bekommt.
Code: Alles auswählen
args = ['C:/Ablage/sox12181/sox', '-q', 'C:/Temp/Test.wav', '-e', 'stat', '-v']
-
- User
- Beiträge: 408
- Registriert: Freitag 7. Oktober 2005, 14:37
- Wohnort: Berlin
- Kontaktdaten:
Und das funktioniert auch. Das gibt der Listenoption (mindestens) einen klaren Vorteil!
Gruß, Seven
Gruß, Seven