Ich versuche vergeblich, mein altes Powershell-Skript hier zu schreiben - "$_.extension -eq" not working as intended? - für Python.Ich habe keine Python-Erfahrung oder Kenntnisse und mein 'Skript' ist ein Durcheinander, aber es funktioniert meistens. Das einzige, was fehlt, ist, dass ich Ordner ignorieren möchte, die keine mp3s enthalten, oder den von mir angegebenen Dateityp. Hier ist, was ich bisher -Ordner mit bestimmten Dateitypen ignorieren
import os, os.path, fnmatch
path = raw_input("Path : ")
for filename in os.listdir(path):
if os.path.isdir(filename):
os.chdir(filename)
j = os.path.abspath(os.getcwd())
mp3s = fnmatch.filter(os.listdir(j), '*.mp3')
if mp3s:
target = open("pls.m3u", 'w')
for filename in mp3s:
target.write(filename)
target.write("\n")
os.chdir(path)
All Ich mag wäre in der Lage sein, zu tun (wenn möglich), ist, dass, wenn das Skript ist durch die Ordner Looping, dass es diejenigen ignoriert, die enthalten ‚mp3s‘ dies nicht tun, und entfernt die 'pls.m3u'. Ich konnte das Skript nur dann richtig funktionieren lassen, wenn ich die 'pls.m3u' standardmäßig erstellt habe. Das Problem ist, dass dadurch viele leere 'pls.m3u' Dateien in Ordnern entstehen, die zB nur '.jpg' Dateien enthalten. Du hast die Idee.
Ich bin sicher, dass dieses Skript für Python-Benutzer blasphemisch ist, aber jede Hilfe würde sehr geschätzt werden.
[fnmatch] (http://docs.python.org/library/fnmatch.html#module-fnmatch) ist wirklich nützlich: 'mp3s = fnmatch.filter (os.listdir (Ordner), '* .mp3') ' –
@ THC4k Ich habe versucht, als" literal "eine Änderung wie möglich zu gehen, aber ich stimme zu, dass dies scheint ein guter Ort, um fnmatch statt os.path.splitext zu verwenden '. (Die Verwendung des Index ist besonders unbefriedigend.) –
Nun habe ich meinen ursprünglichen Beitrag bearbeitet, um die Änderungen wiederzugeben, die ich vorgenommen habe. Ich habe Ihr erstes Beispiel nicht vollständig verstanden, aber ich konnte sehen, wie Ihr zweites Beispiel funktioniert, also habe ich es stattdessen verwendet. Leider habe ich immer wieder Syntaxfehler bezüglich der Zeile '== ".mp3"] bekommen, so dass ich stattdessen in den fnmatch-Vorschlag aufgenommen habe und es jetzt perfekt funktioniert. Vielen Dank für Ihre Hilfe, sehr geschätzt! – gavin19