Code: Alles auswählen
import sys;
for arg in sys.argv:
print arg
Code: Alles auswählen
import sys;
for arg in sys.argv:
print arg
Hi hubiat!hubiat hat geschrieben:wie kann ich da in sys.argv nachsehen?!
Code: Alles auswählen
import sys
print sys.argv
print sys.argv[0]
Code: Alles auswählen
import sys
print sys.argv[1]
print sys.argv[2]
Code: Alles auswählen
C:\Dokumente und Einstellungen\lokal\Desktop>fileanalyse.py Test.csv fileanalyse.txt
Test.csv
fileanalyse.txt
okay...danke für den tipp!pr0stAta hat geschrieben:Ich gebe zu ich habe mir den Teil davor nun nicht
durchgelesen aber ich würde dir schonmal empfehlen,
den Aufruf ohne ">" zu machen. Also eher so:
fileanalyse.py Test.csv fileanalyse.txt
In der Datei fileanalyse.py kannst du mit sys.argv[1] und sys.argv[2]
auf die 2 Parameter zugreifen, die du übergeben hast.
*wie vorher auch schon erklärt*Code: Alles auswählen
import sys print sys.argv[1] print sys.argv[2]
Ergibt:Code: Alles auswählen
C:\Dokumente und Einstellungen\lokal\Desktop>fileanalyse.py Test.csv fileanalyse.txt Test.csv fileanalyse.txt
Code: Alles auswählen
#!/usr/bin/env python
import sys;
print "Erstes Argument:", sys.argv[1];
(Ausgabe erscheint auf dem Bildschirm). Oder auch:rbreu@zam285:python> ./argument.py eine_datai.txt
Erstes Argument: eine_datai.txt
rbreu@zam285:python>
(keine Ausgabe auf dem Bildschirm, die Shell lenkt die Ausgabe in die Datei bla.txt um)rbreu@zam285:python> ./argument.py eine_datai.txt > bla.txt
rbreu@zam285:python>
rbreu@zam285:python> more bla.txt
Erstes Argument: eine_datai.txt
He? :p Das hab ich doch gerade geschrieben.wie greif ich auf die 2 parameter zu, welche ich übergeben hab?!
Code: Alles auswählen
fileanalyse.py Test.csv fileanalyse.txt
Code: Alles auswählen
sys.argv = ["c:/ordner/fileanalyse.py", "Test.csv", "fileanalyse.txt"]
./argument.py RTNames.csv
okay...das hab ich nun mal verstanden!Rebecca hat geschrieben:./argument.py RTNames.csv
Diese Zeile sollst du auch nicht in den Python-Interpreter eintippen, sondern in die Shell (command, Eingabeaufforderung oder wie auch immer es genannt wird, je nach dem ob's Linux oder Windows ist).
Code: Alles auswählen
f = file(sys.argv[1], "r")
hab ich gemacht!pr0stAta hat geschrieben:Mach mal aus:
f = file("sys.argv[1]")
Bei dir ist sys.argv[1] ein String. Eigentlich ist es aber ein Listenelement.Code: Alles auswählen
f = file(sys.argv[1], "r")
danke super! ich affe hab das im python gesstartet! *tz*pr0stAta hat geschrieben:Du solltest dir die Fehlermeldungen schon einmal selber
durchlesen und überlegen was sie bedeuten können, wie willst
du sonst die Sprache wirklich lernen? Gerade diese
ist doch wirklich Aussagekräftig.
Das bedeutet, das es keinen Eintrag an der Stelle 1 in der Liste
gibt.
*Vermutung*
Du hast deine Datei nicht mit einem Parameter aufgerufen,
also deiner CSV Datei. Übergib deinem Aufruf deines Scriptes noch
den Namen deiner CSV Datei die hoffentlich im selber Ordner
deines Scriptes liegt.
Das Modul kann eigentlich auch mit gequoteten Einträgen umgehen. Wie sind sie denn gequotet? Kannst Du ein kleines Beispiel für solche Daten posten?hubiat hat geschrieben:wie kann ich eigentlich, wenn ich mit diesem csv modul arbeite, diesem sagen, dass ich bestimmte datensätze, welche gequotet sind, dennoch richtig bearbeite?!
hab derzeit anstelle der namensausgabe eine leerzeile in meinem ausgabe file! :-/
damit ich das mit den schleifen usw. besser verstehe! darum dachte ich mir, dass es eventuell besser wär!BlackJack hat geschrieben:Warum willst Du CSV Dateien selbst parsen, wenn es dafür schon ein Modul gibt, dass Dir die ganze Arbeit abnimmt? Gerade wenn Du sowieso noch eine Menge anderer Anforderungen erfüllen musst.