bat和python批量重命名文件的實(shí)現(xiàn)代碼
最近從某網(wǎng)站下載了一批文檔,但是文件是用數(shù)字串命名的文檔(很多圖書館都這樣吧),現(xiàn)在我也下載完了這些文件,也有這些文件的列表,就是不能一個(gè)一個(gè)的把文件給重命名吧所以從網(wǎng)上找了這幾個(gè)腳本。
一、使用bat腳本(windows系統(tǒng)默認(rèn)可用)
打開記事本,將這些代碼寫入記事本,另存為xx.bat文件(注意后綴名,很多小白保存成了xx.bat.txt,因?yàn)閠xt是隱藏的,以為不行)
@echo off for /r “d:\pdf” %%a in (*.pdf) do ( for /f “tokens=1,2 delims= ” %%b in (1.txt) do ( if “%%~nxa”==”%%b” ren “%%a” “%%c.pdf” ) )
要求文件放在d:/pdf文件夾下,文件后綴為.pdf,文件列表放在1.txt下面,txt保存為微軟下的默認(rèn)ANSI格式就好,內(nèi)部內(nèi)容格式為以下格式:
ts001003.pdf 世界科技全景百卷書(3)近代科技
ts001004.pdf 世界科技全景百卷書(4)蒸汽機(jī)帶來的革命
ts001005.pdf 世界科技全景百卷書(5)現(xiàn)代科技
有需要的可以適當(dāng)修改。
二、使用python腳本(windows系統(tǒng)需安裝python 3.50 編譯軟件,約30M,linux估計(jì)需要升級(jí)python到3.50)
這個(gè)腳本是我花了好幾個(gè)小時(shí)寫的一個(gè)腳本(雖然學(xué)了好久編程,但是要流暢的寫一個(gè)比較好的還是不順手)
打開記事本,將這些代碼寫入記事本,另存為xx.bat文件(注意后綴名,很多小白保存成了xx.bat.txt,因?yàn)閠xt是隱藏的,以為不行)
#!/bin/env python # -*- coding: utf-8 -*- """從某網(wǎng)站下載了一批文檔,但是文件是用數(shù)字串命名的文檔(很多圖書館都這樣吧), 也有文檔列表,所以寫了一個(gè)腳本來重命名批文件 """ __author__ = 'rublog' import os #1.txt文檔要求每個(gè)文檔一行,保存的時(shí)候必須為ANSI格式,前面是列表文檔名含后綴(就是網(wǎng)站上文件名,一串?dāng)?shù)字 #或者字母什么的),空一格,然后是文檔的真名(不帶后綴) #get_list這個(gè)從1.txt文本文件中一行一行的讀取文件,去掉換行符,然后調(diào)用doc_rename #函數(shù) def get_list(): #嘗試不同的編碼來自知乎 十五 #https://www.zhihu.com/question/30070752/answer/46684320 decode_list=["utf-8",'gb18030', 'ISO-8859-2','gb2312',"gbk","Error" ]#編碼集 #GBK不如GB18030覆蓋得好,容易出錯(cuò),故首先嘗試GB18030。 for k in decode_list:#編碼集循環(huán) try: book_list = open('1.txt', encoding=k) #打開路徑中的文本 line = book_list.readline() while line: if os.name == 'nt': line = line.strip('\r\n') else: line = line.strip('\n') doc_rename(line) line = book_list.readline() break#打開路徑成功跳出編碼匹配 except: if k == "Error":#如果碰到這個(gè)程序終止運(yùn)行 print("had no way to decode") raise Exception("%s had no way to decode"%directions) continue #重命名,構(gòu)造完整的路徑和后綴 def doc_rename(book_list_line): try: name_list = book_list_line.split(' ') list_name = name_list[0] cool_list = list_name.split('.') ext = cool_list[-1] current_folder = os.getcwd() real_name = name_list[1] real_name = os.path.join(current_folder, real_name) real_name_ext = real_name+'.'+ext os.rename(os.path.join(current_folder, list_name), real_name_ext) print('success') except: pass return 0 #據(jù)說高手都會(huì)寫的主函數(shù) if __name__ == '__main__': get_list()
要求文件放在普通文件夾下,文件后綴可以任意(后綴要和txt內(nèi)的列表后綴一樣),文件列表放在1.txt下面,txt保存為微軟下的默認(rèn)ANSI格式或者UTF無BOM格式就好,內(nèi)部內(nèi)容格式為以下格式:
ts001003.pdf 世界科技全景百卷書(3)近代科技
ts001004.pdf 世界科技全景百卷書(4)蒸汽機(jī)帶來的革命
ts001005.pdf 世界科技全景百卷書(5)現(xiàn)代科技
1.txt文檔要求每個(gè)文檔一行,保存的時(shí)候必須為ANSI或者UTF無BOM格式,其他格式?jīng)]事測試,
前面是列表文檔名含后綴(就是網(wǎng)站上文件名,一串?dāng)?shù)字#或者字母什么的),空一格,然后是文檔的真名(不帶后綴)
為方便大家使用特提供打包下載:
•讀取txt重命名列表文件.zip
相關(guān)文章
Python中最好用的命令行參數(shù)解析工具(argparse)
這篇文章主要介紹了Python中最好用的命令行參數(shù)解析工具(argparse),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Python OOP類中的幾種函數(shù)或方法總結(jié)
今天小編就為大家分享一篇關(guān)于Python OOP類中的幾種函數(shù)或方法總結(jié),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02python爬蟲請求庫httpx和parsel解析庫的使用測評(píng)
這篇文章主要介紹了python爬蟲請求庫httpx和parsel解析庫的使用測評(píng),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-05-05Python django框架輸入漢字,數(shù)字,字符生成二維碼實(shí)現(xiàn)詳解
這篇文章主要介紹了Python django框架輸入漢字,數(shù)字,字符轉(zhuǎn)成二維碼實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09使用Scrapy爬取動(dòng)態(tài)數(shù)據(jù)
今天小編就為大家分享一篇關(guān)于使用Scrapy爬取動(dòng)態(tài)數(shù)據(jù)的文章,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10python驗(yàn)證碼識(shí)別教程之利用滴水算法分割圖片
這篇文章主要給大家介紹了關(guān)于python驗(yàn)證碼識(shí)別教程之利用滴水算法分割圖片的相關(guān)資料,文章中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-06-06使用 PyTorch 實(shí)現(xiàn) MLP 并在 MNIST 數(shù)據(jù)集上驗(yàn)證方式
今天小編就為大家分享一篇使用 PyTorch 實(shí)現(xiàn) MLP 并在 MNIST 數(shù)據(jù)集上驗(yàn)證方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01