Python Script ausführen und Variablen übergeben

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
Swenz
User
Beiträge: 3
Registriert: Freitag 5. Mai 2017, 21:11

Hallo zusammen,

Ich habe in Python 3.5 ein kleines Programm geschrieben, in dem ein Python 2.7 Script aufgerufen wird. Das funktioniert auch recht gut. Meine Frage wäre jetzt, ob ich das Python 2.7 Script auch ausführen kann und dabei noch Variablen übergeben. In dem Fall soll ein Dateipfad übergeben werden, der in Python 2.7 dann geöffnet wird.

Der Code sieht in etwa so aus:

Code: Alles auswählen

import subprocess as sp
data = "C:/Users/Swenz/data"
script = "C:/Users/Swenz/script.py"
sp.Popen(script, shell=True)
Könnte mir da bitte jemand helfen?
__deets__
User
Beiträge: 14541
Registriert: Mittwoch 14. Oktober 2015, 14:29

Die Frage die sich da unmittelbar stellt ist - warum schreibst du dein Skript nicht gleich fuer Python 3? Dann kannst du auch normal importieren und aufrufen. Mit kompletten Datenstrukturen etc.
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

@Swenz: man kann beim Aufruf Argumente übergeben

Code: Alles auswählen

import subprocess
data = "C:/Users/Swenz/data"
script = "C:/Users/Swenz/script.py"
process = subprocess.Popen([script, data])
process.wait()
Swenz
User
Beiträge: 3
Registriert: Freitag 5. Mai 2017, 21:11

@ __deets__
Man kann in Python 3 kein pygame und mutagen importieren, und in Python 2 gibt es keine Combobox. Also gebe ich den in der Combobox ausgewählten Pfad an ein Python 2 Script weiter, das diesen Pfad weiterverarbeitet.

@Sirius3
Und wie werden die Argumente von dem anderen Programm dann verarbeitet? Also wie kann ich den übergebenen Pfad dann öffnen?
BlackJack

@Swenz: Was soll „in Python 2 gibt es keine Combobox“ bedeuten? Falls wir von `tkk.Combobox` reden: die gibt's auch in Python 2.7.
__deets__
User
Beiträge: 14541
Registriert: Mittwoch 14. Oktober 2015, 14:29

So weit ich weiss geht pygame durchaus mit Python 3, zB von hier fuer Windows:

http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame

Auch mutagen gibt's fuer Python 3.

Was ComboBox ist weiss ich nicht. Meinst du damit tkinter ComboBox? Natuerlich gibt's die in Python2. Und wieso baust du dir keine Auswahl in pygame?

Fuer mich klingt das sehr nach einem XY-Problem: http://mywiki.wooledge.org/XyProblem

Vielleicht erzaehlst du uns mal was du eigentlich machst, und dann findet sich da eine geschlossene Loesung.

Ausser du bist auf dem Rasberry PI unterwegs. Dann benutzt du in deinem zweiten Programm

Code: Alles auswählen

import sys
print(sys.argv)
um an die uebergebenen Werte zu kommen.
Swenz
User
Beiträge: 3
Registriert: Freitag 5. Mai 2017, 21:11

@BlackJack
Ja ich meine diese Combobox, aber ich kann die nicht importieren. Weiß auch nicht warum.

@__deets__
Danke es hat funktioniert!
Ich bin gerade dabei ein Musikplayer zu programmieren, und hatte da ein paar, ich sag mal Besondere Ansprüche.


Danke für eure Hilfe
Antworten