最近下载了一个Win7的壁纸包,解压一看,主目录是win7walls,下面是以国家为名的二十多个文件夹,每个文件夹中是以数字1,2,3为名称的jpg文件。因为这样的分布不可以使用Win7的自动换壁纸功能,所以我想把它们都移动到主目录Win7walls下面,但又不能直接剪切,因为基本上都重名。这时我又想到了Python。
os.walk对于遍历子目录极其方便。
PS: 2014-12-12
5年后的今天,因为要写一个脚本,列出5000多个分散的DICOM的信息,然后按每4GB一批打包到ISO文件中。又找到我上面的这篇文章。现在看当时这文章一是没突出题目,主要介绍了os.walk的用法,二是细节没说清楚。
这里再补充几点:
os.rename的确很快,但它有两点要注意:
1. 目标文件夹不能够已经存在,否则会报错。
2. 目标文件夹的父目录需要全部存在,否则会报错,举例:
要把D:\AA\BB\CC.TXT移动到D:\EE\DD\CC.TXT,那么需要已经存在D:\EE\DD目录,不存在就需要建立,
这里推荐用os.mkdirs来递归建立目录,很方便。
3. 它只是同盘移动快,不同盘还是用复制。好在现在我分区一般就分个C和D,多大的硬盘都这样。