【发布时间】:2015-05-01 11:55:40
【问题描述】:
我在不同的文件夹和子文件夹中有几个不同类型的文件。他们数量庞大。我希望从所有位置提取所有文件并复制到单个目录。
我编写了一个如下的 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 有the cProfile standard module for that。请参阅stackoverflow.com/questions/582336/… 了解一些简单的使用示例和替代方案。
-
它现在不太可能对您有所帮助,除非您想尝试 alpha 版本,但 os.walk in 3.5 在 Windows 上要快得多。
标签: python windows python-2.7