<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>' --> '</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>' --> '</code> <code>+</code> <code>pathdirLower)</code>
<code> </code><code>os.rename(pathdir, pathdirLower)</code>
相關閱讀:
本文轉自walker snapshot部落格51CTO部落格,原文連結http://blog.51cto.com/walkerqt/1369880如需轉載請自行聯系原作者
RQSLT