天天看点

Python遍历目录更换文件名和目录名

<code>#encoding: utf-8</code>

<code>#author: walker</code>

<code>#date: 2014-03-07</code>

<code>#summary: 深度遍历指定目录,并将子目录和文件名改为小写</code>

<code>#注意,此程序只针对windows,windows下文件(夹)名不区分大小写</code>

<code>import</code> <code>os</code>

<code>import</code> <code>os.path</code>

<code>import</code> <code>shutil</code>

<code>#读入指定目录并转换为绝对路径</code>

<code>rootdir </code><code>=</code> <code>raw_input</code><code>(</code><code>'root dir:\n'</code><code>)</code>

<code>rootdir </code><code>=</code> <code>os.path.abspath(rootdir)</code>

<code>print</code><code>(</code><code>'absolute root path:\n*** '</code> <code>+</code> <code>rootdir </code><code>+</code> <code>' ***'</code><code>)</code>

<code>#先修改文件名</code>

<code>for</code> <code>parent, dirnames, filenames </code><code>in</code> <code>os.walk(rootdir):</code>

<code>    </code><code>for</code> <code>filename </code><code>in</code> <code>filenames:</code>

<code>        </code><code>pathfile </code><code>=</code> <code>os.path.join(parent, filename)</code>

<code>        </code><code>pathfileLower </code><code>=</code> <code>os.path.join(parent, filename.lower())</code>

<code>        </code><code>if</code> <code>pathfile </code><code>=</code><code>=</code> <code>pathfileLower:   </code><code>#如果文件名本身就是全小写</code>

<code>            </code><code>continue</code>

<code>        </code><code>print</code><code>(pathfile </code><code>+</code> <code>' --&gt; '</code> <code>+</code> <code>pathfileLower)</code>

<code>        </code><code>os.rename(pathfile, pathfileLower)</code>

<code>        </code> 

<code>#后修改目录名,这里注意topdown参数。</code>

<code>#topdown决定遍历的顺序,如果topdown为True,则先列举top下的目录,然后是目录的目录,依次类推;</code>

<code>#反之,则先递归列举出最深层的子目录,然后是其兄弟目录,然后父目录。</code>

<code>#我们需要先修改深层的子目录</code>

<code>for</code> <code>parent, dirnames, filenames </code><code>in</code> <code>os.walk(rootdir, topdown</code><code>=</code><code>False</code><code>):</code>

<code>    </code><code>for</code> <code>dirname </code><code>in</code> <code>dirnames:</code>

<code>        </code><code>pathdir </code><code>=</code> <code>os.path.join(parent, dirname)</code>

<code>        </code><code>pathdirLower </code><code>=</code> <code>os.path.join(parent, dirname.lower())</code>

<code>        </code><code>if</code> <code>pathdir </code><code>=</code><code>=</code> <code>pathdirLower: </code><code>#如果文件夹名本身就是全小写</code>

<code>        </code><code>print</code><code>(pathdir </code><code>+</code> <code>' --&gt; '</code> <code>+</code> <code>pathdirLower)</code>

<code>        </code><code>os.rename(pathdir, pathdirLower)</code>

相关阅读:

本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1369880如需转载请自行联系原作者

RQSLT