Välkommen till linuxportalen.se!

Linuxportalen.se är Sveriges största och aktivaste webbplats för användare av öppen- och fri programvara.

Du besöker Linuxportalen.se som gäst vilket begränsar din möjlighet att använda webbplatsens alla funktioner. Genom att registera dig som medlem får du inte bara möjlighet att söka bland webbplatsens innehåll, skapa nya och delta i befintliga diskussioner, skapa din egen blogg, kommunicera med andra medlemmar genom privata meddelanden och delta i omröstningar. Du får också tillgång till Veckans Kadavro - en seriestrip unikt skapad för Linuxportalen.se!

Registeringen sker snabbt och är helt kostnadsfri - tveka inte, bli medlem idag!

argv?

Jag har två frågor.

Problem 1
Jag försöker lära mig att ta inputs direkt från kommandoraden utanför python. Som jag förstått är det sys.argv som används för detta. Men jag förstår inte riktigt hur man ska omsätta det i praktiken.

Om jag tillexempel vill ange två variablers värde genom detta och sedan räkna ihop dessa två med en tredje inne i programet hur görs detta? argv verkar ju vilja göra allt till listor.
för att utveckla.
Kod:
#python myprogram.py var1=53 var3=7

i programet händer sedan följande:
Kod:
var3 = 20
print var1 + var2 + var3

eller om jag så skulle vilja göra en växel. dvs: if [någonting?] == "-p": print var3. hur görs detta?

jag förstår inte alls. känns som jag är inne på helt fel spår.

Problem 2

Ett snarlikt problem.
jag vill att allt som skrivs efter program.py helt enkelt ska sparas i en fil.

Kod:
#!/usr/bin/python
import sys
fil = open("textfil", "a")
for i in sys.argv[1:]:
fil.write(i + "\n")
fil.close

ovanstående gör iofs jobbet men det ser ju helt åt helvete ut. jag skulle vilja att allt helt enkelt bara hamnar där utan att bli en lista. Känns även här tveksamt om det egentligen är argv jag ska använda?

skulle uppskatta om någon kunde hjälpa mig lite på traven.
ursäkta om det blev långt och konstigt formulerat

Alternativ för kommentarvisning

Välj ditt önskade sätt att visa kommentarerna och klicka på "Spara" för att verkställa dina ändringar.

Pettmans bild

Problem 1.
Du knappar in
program1 var1 var2 #där var1 och var2 är variablerna du vill ha som tal, ex 3
Själva programmet kan se ut så här:

#!/usr/bin/env python
import sys
var1 = int(sys.argv[1])
var2 = int(sys.argv[2])
var3 = 20 #eller vad du nu vill ha för tal
print var1+var2+var3

Vill du göra en viss sak om argumentet x är givet så kan du köra:
if x in sys.argv:
{gör något}

Till problem 2 är python grovt överdrivet att använda till, jag skulle köra (direkt i skalet)
echo "texten som skulle in i filen" > filen
Anledningen till att det blir en lista med strängar och inte bara en lång sträng är att det är lättare att gå från lista till sträng än tvärtom.

___________________________________
För övrigt anser jag att CapsLock bör förgöras...