Ich arbeite gerade an Code, der mehrere Verzeichnisse aus einer INI-Datei durchsucht und dann in ein neues Verzeichnis kopiert und kopiert. Ich stieß auf ein Problem, bei dem die for-Schleife, die die Dateien druckt, nur einmal ausgeführt wird, wenn sie fünfmal ausgeführt werden soll. Wie kann ich es reparieren, so dass die for-Schleife jedes Mal funktioniert, wenn sie aufgerufen wird?Python for loop wird nur einmal ausgeführt
Code:
def copyFiles(path):
rootPath = path
print(rootPath)
pattern = "*.wav"
search = ""
#searches the directories for the specified file type then prints the name
for root, dirs, files in os.walk(rootPath):
for filename in fnmatch.filter(files, pattern):
print(filename)
def main():
#opens the file containing all the directories
in_file = open('wheretolook.ini', "r")
#create the new directory all the files will be moved to
createDirectory()
#takes the path names one at a time and then passes them to copyFiles
for pathName in in_file:
copyFiles(pathName)
Output i get from running my code
Die Ausgabe sollte die 0 bis 4 Dateien unter jedem Diretory haben.
Vielen Dank für die Hilfe!
Könnten Sie bitte den Codeeindruck des von Ihnen geposteten Samples korrigieren und vielleicht den 'Baum' eines Verzeichnisses (gekürzte Version) hinzufügen – Sergey
Wild rate: Kommt die '.ini' Datei von Windows und läuft auf irgendeiner Art von Unix? – cdarke
Verwenden Sie ['with'] (http://stackoverflow.com/q/3012488/1394393), um Dateien zu öffnen (und zu schließen). Außerdem ist 'ini' eine ungeeignete Erweiterung, wenn Ihre Datei nur einen einzelnen Pfad pro Zeile enthält. [ini] (https://en.wikipedia.org/wiki/INI_file) hat ein spezifisches Format. (Kein bestimmter Standard wird * vollständig * übernommen, aber alle gängigen Implementierungen verwenden '[sections]' und 'name = value' Paare mindestens.) – jpmc26