Seite 1 von 1
liste mit sys.argv[] übergeben
Verfasst: Freitag 27. Juni 2008, 20:05
von smolle
Hallo,
könnt ihr mir bitte helfen.
Ich möchte eine Liste in folgender Form in der Kommandozeile übergeben:
....test.py ((para1,para2,para3),(para4,para5,para6))
Quellcode von test.py:
Parameter = list(sys.argv[1])
Die Typ Umwandlung wird gemacht aber die Liste sieht dann so aus:
["(", "(", "p", "a", "r", "a", "1", ","................)"] und so weiter.
Gibts da vieleicht ne Möglichkeit. Ich weiß nicht mehr weiter.
Vielen Dank für eure Hilfe
Verfasst: Freitag 27. Juni 2008, 20:15
von numerix
Hallo smolle,
du übergibst quasi nur
einen Parameter an dein Programm, weil du keine trennen Leerzeichen verwendest.
Danach nimmst du diesen einen Parameter, der als Zeichenkette ankommt, und machst eine Liste daraus - das hat zur Folge, dass die Zeichenkette in Zeichen zerlegt wird, die als Elemente deiner Liste auftauchen.
Die einfachste Möglichkeit wäre, die Parameter in der Form
zu übergeben.
Wenn du das nicht willst, dann musst du den einen übergebenen Parameter (als Zeichenkette) so bearbeiten, dass du die gewünschten Parameter extrahierst.
Edit:
Also wenn du wirklich die Parameter nur hinter einander in einer Liste haben willst (keine Tupel - das suggeriert nämlich die Notation deiner Parameter), dann z.B. so:
Code: Alles auswählen
arglist = sys.argv[1].replace('(','').replace(')','').split(',')
Verfasst: Samstag 28. Juni 2008, 14:43
von smolle
Vielen Dank hat mir weiter geholfen.
Der Programmcode sieht nun so aus:
zu übergebener string: (("a1","a2","a3","a4"),("b1","b2","b3","b4")("c1","c2","c3","c4"))
list =(sys.argv[2]).replace('((','').replace('))','').split('),(')
list2=[]
for z in list:
list1 = z.split(',')
list2.append(list1)
for res in list2:
Parameter1 =res[0]
Parameter2 =res[1]
Parameter3=res[2]
Parameter4 =res[3]
Ausgabe:
Parameter1 = a1
Parameter2 = a2
Parameter3 = a3
Parameter4 = a4
Parameter1 = b1
Parameter2 = b2
Parameter3 = b3
Parameter4 = b4
Parameter1 = c1
Parameter2 = c2
Parameter3 = c3
Parameter4 = c4
Was meint ihr geht das so in Ordnung oder zu umständlich
Verfasst: Samstag 28. Juni 2008, 15:44
von numerix
smolle hat geschrieben:Was meint ihr geht das so in Ordnung oder zu umständlich
"Umständlich" ist irgendwie nicht das richtige Wort. Es ist total verquer.
Ich glaube, der momentan beste Ansatz wäre, das
Tutorial von der ersten Seite an zu lesen soweit bist du an die Stellen kommst, wo das behandelt wird, was du brauchst. Dann kriegst du es alleine anständig hin.