Ü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.
Gast

Übergabe von Werten an Variablen beim Skriptstart

Beitragvon Gast » Samstag 8. Januar 2005, 16:12

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
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Samstag 8. Januar 2005, 16:31

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: Alles auswählen

#!/usr/bin/env python
import this
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 8. Januar 2005, 17:39

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 Modvoice
Benutzeravatar
Gunnar
User
Beiträge: 68
Registriert: Samstag 23. Oktober 2004, 08:59

Beitragvon Gunnar » Sonntag 9. Januar 2005, 11:42

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

Beitragvon Gast » Freitag 29. April 2005, 08:34

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:

Beitragvon CM » Freitag 29. April 2005, 09:04

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

Beitragvon Gast » Freitag 29. April 2005, 09:29

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

Beitragvon Gast » Freitag 29. April 2005, 09:43

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!
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Freitag 29. April 2005, 12:31

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 Modvoice

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]