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.
import zipfile
import os,stat, sys, arcpy
from cStringIO import StringIO
def createZip(path):
def walktree (top = ".", depthfirst = True):
names = os.listdir(top)
if not depthfirst:
yield top, names
for name in names:
try:
st = os.lstat(os.path.join(top, name))
except os.error:
continue
if stat.S_ISDIR(st.st_mode):
for (newtop, children) in walktree (os.path.join(top, name),
depthfirst):
yield newtop, children
if depthfirst:
yield top, names
list=[]
for (basepath, children) in walktree(path,False):
for child in children:
f=os.path.join(basepath,child)
if os.path.isfile(f):
f = f.encode(sys.getfilesystemencoding())
list.append( f )
f=StringIO()
file = zipfile.ZipFile(f, "w")
for fname in list:
nfname=os.path.join(os.path.basename(path),fname[len(path)+1:])
file.write(fname, nfname , zipfile.ZIP_DEFLATED)
file.close()
f.seek(0)
return f
path = r"R:\Karto\Bierer2015\Webkarten"
outZipFile = r"R:\Karto\Bierer2015\Datenbank_RP"
createZip(path)
Und das heißt? Was erwartest du denn, und was passiert? Gibt es eine Fehlermeldung? Fackelt dein Rechner ab? Bellt dein Hund? Etwas mehr Information musst du schon liefern.
Indem du das Python-Tutorial aus der Dokumentation durcharbeitest, den Abschnitt über Dateioperationen verstehst und dir *nicht* deinen Code wild aus dem Internet kopierst und zusammenklebst.
JoB hat geschrieben:Und wie wird daraus eine echte gezippte Datei?
Zur Ergänzung zu EyDu's Tipps: StringIO wandelt man nicht einfach in eine Datei um, man tauscht die Funktionen aus.
Wenn du allerdings wirklich noch nicht das Python Tutorial durchgearbeitet hast (nicht nur lesen) dann solltest du das unbedingt tun. Es ist nicht lang und vermittelt sehr viel.
So neu geklaut - führt zu folgender Fehlermeldung:
WindowsError: [Error 2] Das System kann die angegebene Datei nicht finden: 'Pflegekataster2013.shp'
Datei existiert aber ???
@JoB: Existiert die im aktuellen Arbeitsverzeichnis oder vielleicht doch eher irgendwo unter ``R:\Karto\Bierer2015\Webkarten``!? Und die nächste Frage ist dann ob Du die Datei da nicht gerade durch die ZIP-Datei überschrieben hast.
Ich frage mich ja eher, wieso man etwas mit Python macht, wenn man es gar nicht lernen will... da würde ich Batch-Vorgänge eben mit einer Shell lösen :K
Hmmm... schreib doch mal hinter jede Zeile was du denkst was sie tut.
Da sind schlicht alle Grundlagen falsch, die kann man auch schwerlich herbei erklären.