Seite 1 von 2

Verfasst: Freitag 3. April 2009, 16:24
von cofi
Und weils grad so schön ist:
1. Wenn du mit Windows-Pfadnamen (oder RegExp, ..) hantierst nutze RawStrings:
"C:\\Quellverzeichnisse" -> r"C:\Quellverzeichnisse"
oder noch besser: gleich `os.path' - Mittel

2. PEP 8 -> http://www.python.org/dev/peps/pep-0008/ [wiki]PEP_8_(Übersetzung)[/wiki]

Verfasst: Freitag 3. April 2009, 17:03
von bords0
CM hat geschrieben:Und was Deinen Traceback angeht:
Wenn Du Deine Datei 'glob' nennst und 'import glob' schreibst, dann import Python Dein (!) 'glob'-Modul und nicht dasjenige, dass Du erwartest. Namespaces sind ganz toll, aber Du solltest vermeiden Deine Module so zu benennen, wie die Standardmodule. 'test.py' wäre ein schöner Name ;-)
Trotz Smiley ist das vielleicht nicht jedem klar geworden: test.py ist ein schlechter Name, auch (aber nicht nur) weil es ein Standardmodul namens test gibt.

Verfasst: Montag 20. April 2009, 13:26
von Civili4n
Danke nochmal für alle hilfen, läuft ja mittlerweile genau so wie ich es will, nur das es noch eine kleinen änderung bedürfte bei der ich nicht annähernd weiss wie ich sie umsetzten soll, und zwar:
ich würde das script gerne per console aufrufen und auch dorf festlegen welches der zu packende und welches der Zielordner ist, und zwar alles in einer zeile.
Eine Allgeneine erklärung wäre klasse da dies nicht das einziege script ist welches ich so aufrufen möchte.
MfG: Civili4n

P.S.: Die lösung muss nicht "Benutzerfreundlich" sein, heisst: es muss nirgendwo stehen: "Geben sie nun den Zielordner an... " usw.
Mein Ziel ist es ledeglich die console zu starten und dann einzutippen:
'C:\Python30\Projekte\tarerstellen.py C:\Quellverzeichnisse C:\Zielordner'

Verfasst: Montag 20. April 2009, 16:24
von cofi
Dazu brauchst du nur sys.argv:

Code: Alles auswählen

import sys
source_dir = sys.argv[1]
target_dir = sys.argv[2]
`sys.argv[0]` ist übrigens das Script.
Wenns komplexer wird solltest du dir `optparse` anschauen.

Verfasst: Dienstag 21. April 2009, 07:42
von Civili4n
Danke! Klappt einwandfrei.
Ja komplexer wirds glücklicherweise noch nicht :) aber danke für den tipp, ich werde mir das mal genauer ansehen.
jetzt muss ich nur noch ne passende fehlermeldung einfügen aber ich hoffe das klappt mit 'try'... oder wird das nicht funktionieren bzw. gibts vllt ne bessere lösung?

MfG Civili4n

Verfasst: Dienstag 21. April 2009, 11:54
von derdon
Hinweis: wenn die Argumente (oder auch nur einer) beim Aufruf weggelassen werden, dann wird ein IndexError ausgelöst. Wie man diese Exception abfangen kann, verrät das offizielle Tutorial an dieser Stelle: http://docs.python.org/tutorial/errors.html