У меня есть несколько файлов разного типа в разных папках и подпапках. Они огромны. Я ищу, чтобы извлечь все файлы из всех мест и скопировать в один каталог.Извлечение нескольких файлов из нескольких папок
Я написал сценарий Python следующим образом, [только для файла .doc], но занимает слишком много времени.
import os
from fnmatch import fnmatch
def listallfiles1(n):
root = 'C:\Cand_Res'
pattern = "*.doc"
for path, subdirs, files in os.walk(root):
for name in files:
if fnmatch(name, pattern):
print os.path.join(path, name)
Если вы можете предложить какое-нибудь интеллектуальное решение, используя любую функцию Windows или любую команду MS-DOS и т. Д. Или скрипт Python.
Если это работает, разместите его на codereview –
Первое, что нужно сделать, когда что-то «занимает много времени» - это запустить профилировщик, чтобы определить узкое место. Python имеет [стандартный модуль cProfile для этого] (https://docs.python.org/2/library/profile.html). См. Http://stackoverflow.com/questions/582336/how-can-you-profile-a-python-script для некоторых простых примеров использования и альтернатив. –
Это вряд ли поможет вам сейчас, если вы не хотите попробовать альфа-версию, но [os.walk в 3.5] (https://docs.python.org/3.5/library/os.html#os.walk) является значительно быстрее в Windows. – eryksun