Python 批量修改PDF檔名
阿新 • • 發佈:2018-12-17
參加CyberC會議,會議的論文集檔名全是字母+數字,找自己想看的很難受,就用python改了下。
環境說明:
(1)python3.6
(2)PyPDF2庫(直接pip安裝就行)
(3)檔案的結構說明,如下圖:
程式碼如下:
import os from PyPDF2 import PdfFileWriter, PdfFileReader from shutil import copy2 src_dir = 'F:\CyberC文獻\CyberC2018' # 原始檔目錄地址 des_dir = 'F:\CyberC文獻\CyberC2018-txt' # 新檔案目錄地址 num = 0 def list_all_files(rootdir): import os _files = [] list = os.listdir(rootdir) #列出資料夾下所有的目錄與檔案 for i in range(0,len(list)): path = os.path.join(rootdir,list[i]) if os.path.isdir(path): _files.extend(list_all_files(path)) if os.path.isfile(path): _files.append(path) return _files if not os.path.exists(des_dir): # 如果沒有目標資料夾,新建一個目標資料夾進行儲存 os.makedirs(des_dir) if os.path.exists(src_dir): files = list_all_files(src_dir) # 獲取原始檔的目錄地址 for file in files: # 對於目錄下的每一個檔案 pdf_reader = PdfFileReader(open(file, 'rb')) # 開啟並建立一個PDF檔案物件 paper_title = pdf_reader.getDocumentInfo().title # 獲取PDF標題 print("num : %s" % num, paper_title) # 顯示處理到第幾個檔案 num += 1 paper_title = str(paper_title) # 標題字元化 if paper_title.find('/') != -1: # 對於'/'無法寫入檔名的情況,將其用'_'代替 new_paper_title = paper_title.replace('/', '_') paper_title = new_paper_title copy2(file, os.path.join(des_dir, paper_title) + '.pdf') else: copy2(file, os.path.join(des_dir, paper_title) + '.pdf') else: print("該路徑下不存在所查詢的目錄!")