国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

bat和python批量重命名文件的實現代碼

2020-01-04 17:27:26
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了bat和python批量重命名文件的實現代碼,需要的朋友可以參考下
 

最近從某網站下載了一批文檔,但是文件是用數字串命名的文檔(很多圖書館都這樣吧),現在我也下載完了這些文件,也有這些文件的列表,就是不能一個一個的把文件給重命名吧所以從網上找了這幾個腳本。

一、使用bat腳本(windows系統默認可用)

打開記事本,將這些代碼寫入記事本,另存為xx.bat文件(注意后綴名,很多小白保存成了xx.bat.txt,因為txt是隱藏的,以為不行)

@echo offfor /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保存為微軟下的默認ANSI格式就好,內部內容格式為以下格式:

ts001003.pdf 世界科技全景百卷書(3)近代科技
ts001004.pdf 世界科技全景百卷書(4)蒸汽機帶來的革命
ts001005.pdf 世界科技全景百卷書(5)現代科技

有需要的可以適當修改。


二、使用python腳本(windows系統需安裝python 3.50 編譯軟件,約30M,linux估計需要升級python到3.50)

這個腳本是我花了好幾個小時寫的一個腳本(雖然學了好久編程,但是要流暢的寫一個比較好的還是不順手)
打開記事本,將這些代碼寫入記事本,另存為xx.bat文件(注意后綴名,很多小白保存成了xx.bat.txt,因為txt是隱藏的,以為不行)

#!/bin/env python# -*- coding: utf-8 -*-"""從某網站下載了一批文檔,但是文件是用數字串命名的文檔(很多圖書館都這樣吧),也有文檔列表,所以寫了一個腳本來重命名批文件"""__author__ = 'rublog'import os#1.txt文檔要求每個文檔一行,保存的時候必須為ANSI格式,前面是列表文檔名含后綴(就是網站上文件名,一串數字#或者字母什么的),空一格,然后是文檔的真名(不帶后綴)#get_list這個從1.txt文本文件中一行一行的讀取文件,去掉換行符,然后調用doc_rename#函數def get_list():  #嘗試不同的編碼來自知乎 十五  #https://www.zhihu.com/question/30070752/answer/46684320  decode_list=["utf-8",'gb18030', 'ISO-8859-2','gb2312',"gbk","Error" ]#編碼集  #GBK不如GB18030覆蓋得好,容易出錯,故首先嘗試GB18030。  for k in decode_list:#編碼集循環    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":#如果碰到這個程序終止運行        print("had no way to decode")        raise Exception("%s had no way to decode"%directions)      continue#重命名,構造完整的路徑和后綴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#據說高手都會寫的主函數if __name__ == '__main__':  get_list()

要求文件放在普通文件夾下,文件后綴可以任意(后綴要和txt內的列表后綴一樣),文件列表放在1.txt下面,txt保存為微軟下的默認ANSI格式或者UTF無BOM格式就好,內部內容格式為以下格式:

 

ts001003.pdf 世界科技全景百卷書(3)近代科技

ts001004.pdf 世界科技全景百卷書(4)蒸汽機帶來的革命

ts001005.pdf 世界科技全景百卷書(5)現代科技


1.txt文檔要求每個文檔一行,保存的時候必須為ANSI或者UTF無BOM格式,其他格式沒事測試,

前面是列表文檔名含后綴(就是網站上文件名,一串數字#或者字母什么的),空一格,然后是文檔的真名(不帶后綴)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黎平县| 宜宾县| 镇安县| 武功县| 阿坝县| 浦东新区| 朝阳县| 房产| 肇东市| 霍山县| 全椒县| 濮阳市| 普定县| 永顺县| 宁南县| 临海市| 宁河县| 始兴县| 陇西县| 偏关县| 石泉县| 三门县| 浦北县| 江城| 阜新市| 蓬安县| 黑龙江省| 贺州市| 施甸县| 毕节市| 上犹县| 蒙阴县| 曲水县| 长宁区| 宁津县| 和田市| 青田县| 丰镇市| 江达县| 吉隆县| 孟连|