参加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("该路径下不存在所查找的目录!")