hi
Respekt vor euch python-Kennern, ich weiss gar nicht so recht, wie und wo ich mit Python anfangen soll.. Ich Flash-Mensch, und prima fit in ActionScript und allem pipapo, aber die moeglichkeiten sind doch eher arm - eben mal auf das Dateisystem zugreifen ist nicht.
Ich brauche eigentlich einfach ein script, dass mir den Inhalt eines Ordners in eine Textdatei schreibt, sprich Ordner/Datei-Namen. Das geht auch prima mit nem batchfile in Windows mit
dir *.jpg > datei.txt
und mit den ganzen Schaltern ist das schon prima. Nur stoert mich das schwarze dos-artige Fenster der batchfiles doch sehr...
Kann mir jemand da nen Anfang geben? Ich denke das ist ein vernuenftiger Anfang um selber paar Sachen in Python zu lernen.. (google mir schon die Finger wund) aber bin sicher dass das in ein paar zeilen geregelt ist, weiss aber absolut nicht was zu tun ist... danke
Kurzes Script zum Auflisten von Ordnerinhalten?
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi!_loopmode hat geschrieben:Ich brauche eigentlich einfach ein script, dass mir den Inhalt eines Ordners in eine Textdatei schreibt
Willkommen im Python-Forum!
Hier die Luxus-Version für einen Ordner ohne Unterordner. Lass dich nicht abschrecken. Das ist nur deshalb so viel Code, weil ich ein paar zusätzliche Dinge eingebaut habe.
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
from glob import glob
import os.path
import locale
# Auslesen
names = glob(r"J:\*")
# Trennen
dirnames = []
filenames = []
for name in names:
if os.path.isdir(name):
dirnames.append(name)
else:
filenames.append(name)
# Sortieren (nach deutscher Sortierung)
# http://python.org/doc/2.4.2/lib/module-locale.html
# http://www.python-forum.de/topic-5255.html
locale.setlocale(locale.LC_COLLATE, "german")
dirnames.sort(locale.strcoll)
filenames.sort(locale.strcoll)
# Schreiben
f = file("ausgabedatei.txt", "w")
for dirname in dirnames:
f.write("dir|" + dirname + "\n")
for filename in filenames:
f.write("file|" + filename + "\n")
f.close()
Code: Alles auswählen
dir|J:\Ablage
dir|J:\CanoScan
dir|J:\cygwin
dir|J:\Dokumente und Einstellungen
dir|J:\MinGW
dir|J:\Office10
dir|J:\program files
dir|J:\Programme
dir|J:\Python24
dir|J:\RECYCLER
dir|J:\Sicherungen
dir|J:\System Volume Information
dir|J:\WINDOWS
dir|J:\Zope-Instance
file|J:\boot.ini
file|J:\bootfont.bin
file|J:\IO.SYS
file|J:\MSDOS.SYS
file|J:\NTDETECT.COM
file|J:\ntldr
file|J:\pagefile.sys
file|J:\W32enwa.dll
Hier noch ein paar interessante Links zu diesem Thema:
- http://www.python-forum.de/post-40236.html
- http://www.python-forum.de/post-43910.html#43910
- http://www.python-forum.de/topic-7072.h ... light=walk
- http://www.python-forum.de/topic-6157.html
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wenn dir glob.glob() irgendwie zu eingeschränkt oder leicht überdimensioniert vorkommt, kannst du auch direkt os.listdir() verwenden. Wenn ich mich an den Quelltext des glob-Moduls erinnere, ist das nur ein Wrapper um os.listdir() und fnmatch.