2016-09-23 4 views
0

ich gelesen, dass Sie eine Datei mit import wie diese
file.py ausführen kann: drucktWie führe ich eine Datei in Python mit Argumenten über den Import aus?

#!/usr/bin/env python 
print "Hello World!" 

Und file.py:

#!/usr/bin/env python 
import file2 

file2.pyHello World. Wie würde ich diese Datei mit Argumenten unter Verwendung von import ausführen?

+0

http://stackoverflow.com/questions/20309456/how-to-call-a-function-from-another-file-in-python – LaneL

+0

http://stackoverflow.com/a/3781960/391161 – merlin2011

Antwort

1

Programmargumente sind in sys.argv verfügbar und können von jedem Modul verwendet werden. Sie könnten file2.py zu

import sys 
print "Here are my arguments", sys.argv 

Sie können die argparse Modul für komplexere Analyse verwenden ändern.

+0

Er möchte nicht, dass die Argumente vom Terminal empfangen werden. Er möchte sie durch die "Import" -Anweisung senden. – Bharel

+0

@Bharel OP hat nie angegeben, woher die Argumente kommen oder wie sie in * file2.py * verwendet werden. Er hat sicherlich nicht gesagt, dass sie keine Standardprogrammargumente sind. – tdelaney

+0

@tdelaney Es tut mir leid, anscheinend waren meine Anweisungen nicht klar genug. Aber ich möchte ** eine Datei ausführen ** wenn möglich mit Import. – baranskistad

1

Der Import ist nicht für die Ausführung von Skripten gedacht. Es wird verwendet, um Funktionen, Klassen und Attribute, die es enthält, zu holen oder zu "importieren". Wenn Sie das Skript mit einem anderen Interpreter ausführen und ihm Argumente geben möchten, sollten Sie subprocess.run() verwenden.


In Python 2 können Sie subprocess.call() oder subprocess.check_output() verwenden, wenn Sie die Programme Ausgabe benötigen.

+0

Ja und nein. Wenn Sie ein Paket installieren, befinden sich die Module nicht im System 'PATH' und es ist üblich, Hilfsskripten in' PATH' einzubinden, um sie auszuführen. Mit dieser Importmethode können Sie sich auch an der Systemumgebung herumärgern, bevor das Zielskript ausgeführt wird. – tdelaney

+0

Ich verwende 2,7, gibt es eine Möglichkeit, dies in 2,7 zu ​​tun? Oder muss ich auf 3.x upgraden? – baranskistad

+0

@bjskistad für Python 2 hinzugefügt. – Bharel

Verwandte Themen