В настоящее время я работаю над некоторым кодом, который будет просматривать несколько каталогов из файла .ini, а затем распечатать и скопировать их в новый каталог. Я столкнулся с проблемой, когда цикл for, который печатает файлы, выполняется один раз, когда он должен выполняться 5 раз. Как я могу его исправить, так что цикл for работает каждый раз, когда он вызывается?Python for loop выполняется только один раз
Код:
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
Выход должен иметь от 0 до 4 файлов под каждым diretory.
Благодарим за помощь!
Не могли бы вы исправить отступ в коде образца, который вы отправили, и, возможно, добавить «дерево» каталога (сокращенная версия). – Sergey
Дикая догадка: файл '.ini' поступает из Windows и вы работаете на некотором роде Unix? – cdarke
Для открытия (и закрытия) файлов используйте ['with'] (http://stackoverflow.com/q/3012488/1394393). Кроме того, 'ini' является несоответствующим расширением, если ваш файл представляет собой всего лишь один путь в строке. ['ini'] (https://en.wikipedia.org/wiki/INI_file) имеет определенный формат. (Никакой конкретный стандарт не принят полностью, но во всех распространенных реализациях минимально используются пары '[sections]' и 'name = value'.) – jpmc26