tar erstellen per Python 3.0

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.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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]
bords0
User
Beiträge: 234
Registriert: Mittwoch 4. Juli 2007, 20:40

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.
Civili4n
User
Beiträge: 12
Registriert: Freitag 3. April 2009, 07:30

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'
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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.
Civili4n
User
Beiträge: 12
Registriert: Freitag 3. April 2009, 07:30

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
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

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
Antworten