成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python遍歷文件夾并批量改名

yzd / 2438人閱讀

摘要:計(jì)劃是把第二級(jí)文件夾的名字縮短,這樣以后搜索書名的時(shí)候還可以檢索到相應(yīng)的書目。一些作者下面可能會(huì)有多本書,所以再一次遍歷得到二級(jí)文件夾目錄這里縮短二級(jí)文件夾的名字,取前個(gè)字符。這段代碼是通用的,可以直接放到任何地方檢查文件數(shù)。

在學(xué)校時(shí),從六維空間下載了一些電子書,文學(xué)類全英文mobi格式的,有24G多。放在硬盤有段時(shí)間了,比較占地方,想移到移動(dòng)硬盤里去。文件的目錄格式如下:
第一級(jí)目錄是按作者名排序的文件夾,第二級(jí)目錄是以書的名字命名的文件夾,第三級(jí)就是書了。

講道理的話我直接剪切,粘貼就結(jié)束了,可是,偏偏就出問題了,粘貼的時(shí)候提示我文件名太長(zhǎng),不能粘貼。然后就搜索了一下,Windows文件的路徑最長(zhǎng)為255字符,這里由于書名和第二級(jí)文件夾目錄名字較長(zhǎng),超過了限制,導(dǎo)致無法復(fù)制過去。

所以才有了這篇文章。

計(jì)劃是把第二級(jí)文件夾的名字縮短,這樣以后搜索書名的時(shí)候還可以檢索到相應(yīng)的書目。

下面直接上代碼了,代碼寫的很糙,看下思路就行了。

import os
dir = os.getcwd()         #獲取當(dāng)前目錄
subdir = os.listdir(dir)  #遍歷當(dāng)前目錄下所有文件,也就是獲取第一級(jí)作者名字所有文件夾
for i in subdir:
    path = os.path.join(dir,i)      #把第一級(jí)目錄添加到路徑中
    if os.path.isdir(path):         #如果path仍然是文件夾,下面就繼續(xù)遍歷出其中的文件,
        end_dir = os.listdir(path)  #實(shí)際上這步判斷可以不要的,因?yàn)槲抑滥夸浗Y(jié)構(gòu)。
        for i in range(len(end_dir)):  #一些作者下面可能會(huì)有多本書,所以再一次遍歷得到二級(jí)文件夾目錄
            newname = end_dir[i][0:50] #這里縮短二級(jí)文件夾的名字,取前50個(gè)字符。
            os.rename(os.path.join(path,end_dir[i]),os.path.join(path,newname))  #用新名字取代舊名字

到這里,名字就改完了,我順利的把文件移到了硬盤。

然后呢,我在想,24G,有多少本書呢,那么問題來了,
代碼很糙,湊合看吧,上代碼。這段代碼是通用的,可以直接放到任何地方檢查文件數(shù)。

import os
result = []
def get_all(cwd):
    get_dir = os.listdir(cwd)  #遍歷當(dāng)前目錄,獲取文件列表
    for i in get_dir:          
        sub_dir = os.path.join(cwd,i)  # 把第一步獲取的文件加入路徑
        if os.path.isdir(sub_dir):     #如果當(dāng)前仍然是文件夾,遞歸調(diào)用
            get_all(sub_dir)
        else:
            ax = os.path.basename(sub_dir)  #如果當(dāng)前路徑不是文件夾,則把文件名放入列表
            result.append(ax)
            print(len(result))   #對(duì)列表計(jì)數(shù)
            
if __name__ == "__main__": 
    cur_path = os.getcwd()   #當(dāng)前目錄
    get_all(cur_path)

最后,運(yùn)行后得到結(jié)果15108,然后可以結(jié)合上篇文章,把書名導(dǎo)入到Excel表中,方便查詢。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/37981.html

相關(guān)文章

  • Python完成簡(jiǎn)單鑒別數(shù)百個(gè)物流單號(hào)

      在我們要寄出去許多快遞包裹時(shí),為了能及時(shí)溝通物流詳情,要迅速將物流單號(hào)分離出來。這時(shí)候用手動(dòng)式去鑒別確實(shí)太麻煩了,因此本文用Python完成簡(jiǎn)單鑒別數(shù)百個(gè)物流單號(hào),所需的可以了解一下  小伙伴們好,我是大五  這也是Python改變未來系列第三篇,是一個(gè)和你們相關(guān)的難題實(shí)例?! ∏扒樘嵋 ≌莆瘴业暮门笥押苡锌赡芏记宄⒑瞥=o大伙兒送書。近一年,算不上協(xié)同抽獎(jiǎng)活動(dòng)送書,獨(dú)立我自買+出版社出版...

    89542767 評(píng)論0 收藏0
  • 使用Python批量處理工作簿和工作表

    摘要:使用批量處理工作簿和工作表批量新建并保存工作簿批量打開一個(gè)文件夾中的打開工作簿批量重命名一個(gè)工作簿的所有工作表批量重命名多個(gè)工作簿批量重命名多個(gè)工作簿中的同名工作表將一個(gè)工作簿的所有工作表批量復(fù)制到其他工作簿按條件將一 ...

    maxmin 評(píng)論0 收藏0
  • 批量修改OC類名腳本 -- python

    摘要:前言近日由于種種原因,需要把代碼里面的類全部都修改一遍類名。并且在給類文件重命名的時(shí),需要注意前綴和后綴添加的位置,不要添加到和后面去了即可。 前言 近日由于種種原因,需要把代碼里面的類全部都修改一遍類名。 在網(wǎng)上找了一圈相關(guān)的開源庫,沒有發(fā)現(xiàn)有合適滿意的,始終都存在一些問題,要么出現(xiàn)誤修改,要么把方法名或者屬性名也給修改了等等情況。 于是決定掏出生疏的Python來寫一個(gè)。 批量修改...

    cc17 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<