Übergabe von Werten an Variablen beim Skriptstart

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
Gast

Moin !
Eigentlich erklärt sich mein Problem schon durch die Überschrift. Ich hab' ein Skript entwickelt und jetzt festgestellt, daß meine Eingabe für den User zu kompliziert ist. Nun würde ich gerne beim Skriptstart Werte an Variablen übergeben ( z.B. python skript.py -a -c:\python oder so ähnlich )

Ist das möglich und wenn ja, wie ?

Danke für die Mühe,
Gunnar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hi Gunnar,

ja, die mitgegebenen Parameter stehen in der Liste sys.argv
Es gibt auch Module die den Umgang mit den Parametern vereinfachen:
getopt und optionparse


Gruß

Dookie
[code]#!/usr/bin/env python
import this[/code]
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dookie hat geschrieben:optionparse
Das ist optparse, für Py < 2.2 nachzurüsten unter http://optik.sf.net. Das Ding funktioniert sehr gut und ist recht einfach zu nutzen. Eine weitere Auwahl von Tools ist hier.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Gunnar
User
Beiträge: 68
Registriert: Samstag 23. Oktober 2004, 08:59

Komisch, war ich nicht mehr eingeloggt ? :lol:
Danke erstmal für die Antworten, ich schreibe meine Eingabeklasse gleich mal um...

Schönes Wochenende für euch !

Gunnar
Gast

oh weh irgendwie verwirrt mich die Erklärung auf python.org ganz schoen. Vielleicht koennt ihr mir helfen, das heist ich denke ihr koennt mir ganz sicher helfen *g*

Wenn ich ein Programm habe und will ihm einfach zwei Strings mit auf den Weg geben!
<script> String1 String2
was hab ich zu tun? Ich blick da nicht ganz durch!

Bitte um Hilfe

MfG

Christoph
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Hi

was irritiert Dich denn daran so? Weißt Du am Anfang habe ich das auch nicht ganz verstanden und dann einfach mal folgendes probiert:

Code: Alles auswählen

import sys
print sys.argv
Wenn Du diesen Zweizeiler als z. B. "test.py" speicherst und dann das Skript aufrufst mit: "python test.py a b c" wird Dir folgendes erscheinen: "['test.py', 'a', 'b', 'c']" (zumindest von einer Shell aus aufgerufen, bei Dir kann das vielleicht ein wenig anders aussehen). Auf jeden Fall aber hast Du eine Liste und wenn Du jetzt auf das Argument "a" zugreifen möchtest schreibst Du sys.argv[1].

Gruß,
Christian
Gast

Genial hoert sich echt easy an! Ich liebe Python! Aber es laeuft leider nicht! Muss ich die Klasse denn folgendermassen schreiben: class xy(argv[]): das nimmt er leider nicht! Muss ich vielleicht noch auf irgendetwas achten?
Gast

Ok ich nehm alles zurueck!! Python ist ueberhaupt das beste und einfachste Programm der Welt und trotzdem noch eines der umfangreichsten! Ich liebe Python und ich bin einfach gluecklich jetzt *g* ALLES GEHT! Danke euch allen Danke!
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Anonymous hat geschrieben:Muss ich die Klasse denn folgendermassen schreiben: class xy(argv[]):
Huhu, das sieht nach Curled Brace Sprachen aus. Nein, du kannst nicht von argv[] erben...

Aber gut, dass du selbst draufgekommen bist, das steigert den Lernwert drastisch :)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten