MOOC下载器的文档整理

1.背景


  最近学习中国大学MOOC的课程,想把课程的pdf下载下来本地保存并浏览。工具: Setup-Mooc-3.4.0.exe

  但是,却发现所下载的文档在不同的文件夹里,浏览很不方便。于是写个脚本复制粘贴课件到指定位置。

2.工作


2.1 获取指定目录中所下载的文件名
files=[]
#获取指定目录下的文件名
def get_file_dir(dir):
    if  os.path.isdir(dir):
        for item in os.listdir(dir):
            if item!='System Volume Information':#windows下没权限删除的目录:可在此添加更多不判断的目录
                get_file_dir(os.path.join(dir, item))      
    else:
        files.append(dir) 
path=r'C:UsersAdministratorDownloadsPrograms学无止下载器-v1.1.0Download'
get_file_dir(path)
2.2 粘贴复制并重命名文件
course='离散数学 北交大 刘铎'
#newpath=r''+'\'+course   #合并的文件存放位置
new_path=r''+'\'+course+'课件'  #复制的文件存放位置
for file in files:
    old_name=os.path.split(file)[1]
    new_name=re.sub('[()--—_课件]','',old_name)
    shutil.copy(file,os.path.join(new_path,new_name))
2.3 文件合并
def mergepdf(new_path,course,newpath):
    pdfs=os.listdir(new_path)
    merger = PdfFileMerger()
    for pdf in pdfs:
        merger.append(open(os.path.join(new_path,pdf), 'rb'))
    with open(newpath+'\'+course+'.pdf', 'w+') as fout:
        merger.write(fout)

  值得注意的是,这里程序会报错,如下:

TIM截图20191008184251.png

  在网上看到一些文章提及编码方式改成“GBK”,可在一定程度上解决问题(但也可能出现乱码)。这里没有尝试,我直接用Adobe Arcobat Pro DC合并。

2.4 结果

TIM截图20191008190837.png

3.最后


  对于本脚本,我后来进行了优化(文件夹新建、命令行输入参数),下载链接:mooc_pdf_cmd

若有问题,请私信我。

原文地址:https://www.cnblogs.com/sc340/p/11870804.html