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:\Users\Administrator\Downloads\Programs\学无止下载器-v1.1.0\Download'
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)

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

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

2.4 结果

3.最后


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

若有问题,请私信我。

MOOC下载器的文档整理的更多相关文章

  1. 将Html文档整理为规范XML文档

    有多种方式可以在.NET 平台进行HTML文件解析.数据提取,其中最简单.稳妥的办法是先使用工具将Html文档整理成XML文档,再通过XML Dom模型或XPath灵活地进行数据处理.SGML便是一个 ...

  2. VS2017 下载离线MSDN文档

    VS2017 下载离线MSDN文档 点开帮助窗口的时候发现没有添加和删除帮助内容选项.处理方法如下: 1.打开vs2017安装包,如果你找不到安装包,可在相应你下载vs2017的浏览器上找到下载内容, ...

  3. NodeJS-001-Nodejs学习文档整理(转-出自http://www.cnblogs.com/xucheng)

    Nodejs学习文档整理 http://www.cnblogs.com/xucheng/p/3988835.html 1.nodejs是什么: nodejs是一个是javascript能在后台运行的平 ...

  4. Ionic2文档整理

    来自:Rainey's Blog 原文地址:http://rainey.space/2016/04/06/Ionic2_Chinese_Document/ Github:https://github. ...

  5. MongoDB--使用修改器修改文档

    可以使用修改器啦修改文档,比如增加.删除文档的键值.使用修改器首先要定位到某个文档, 然后再增加相应的修改选项,需要使用update语句 1.$inc修改器修改文档 > db.users.fin ...

  6. 上传文件到 Sharepoint 的文档库中和下载 Sharepoint 的文档库的文件到客户端

    文件操作应用场景: 如果你的.NET项目是运行在SharePoint服务器上的,你可以直接使用SharePoint服务器端对象模型,用SPFileCollection.Add方法 http://msd ...

  7. elasticsearch最全详细使用教程:入门、索引管理、映射详解、索引别名、分词器、文档管理、路由、搜索详解

    一.快速入门1. 查看集群的健康状况http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明:v是用来要求在结果中返回表头 状 ...

  8. 2013 最新的 play web framework 版本 1.2.3 框架学习文档整理

    Play framework框架学习文档 Play framework框架学习文档 1 一.什么是Playframework 3 二.playframework框架的优点 4 三.Play Frame ...

  9. Linux文档整理之【Mysql安装与配置】

    最近公司让整理一个Linux安装Mysql的文档.所以就整理了一下,这里将自己整理的详细文档做个笔记. 1.下载Mysql. https://dev.mysql.com/downloads/mysql ...

随机推荐

  1. Linux使用sleep进行延迟实验

    sleep命令可以延迟脚本执行一段时间(以秒为单位).下面的命令使用tput和sleep从0开始计时到40秒: #/bin/bash echo Count: tput sc # 循环40s for c ...

  2. JQuery 自定义属性取值 赋值

    <span id="status_68" data-id="0" onclick="collection(68,false);" cl ...

  3. STM32驱动模数转换芯片ADS1120(基础知识篇)第1篇

    1. 先看下ADS1120的结构图,ADS1120是个比较奇葩的ADC模数转换器,因为比较适用于热电阻之类的温度采集器.看下图,有个MUX多路复用器,应该是选择两个差分信号去测试,通过输入多路复用器 ...

  4. AWS 数据分析服务(十)

    Amazon Kinesis 概念 处理AWS上大量流数据的数据平台 Kinesis Streams 用于搜集数据,Client Library 用于分析后的展示 构建用于处理或分析流数据的自定义应用 ...

  5. stochastic noise and deterministic noise

    在机器学习中,导致overfitting的原因之一是noise,这个noise可以分为两种,即stochastic noise,随机噪声来自数据产生过程,比如测量误差等,和deterministic ...

  6. java端同时获取批量上传图片及其他数据

    Controller层: @ResponseBody @RequestMapping(value = "", method = RequestMethod.POST) public ...

  7. 用pytorch1.0搭建简单的神经网络:进行多分类分析

    用pytorch1.0搭建简单的神经网络:进行多分类分析 import torch import torch.nn.functional as F # 包含激励函数 import matplotlib ...

  8. [转帖]TPC-C基准测试之链路层优化

    TPC-C基准测试之链路层优化 阿里数据库 6000万 TPMC的测试结构. http://www.itpub.net/2019/10/14/3436/ 作者:易鸿伟 闫建良 王光树 在 TPC-C ...

  9. 转:对JavaScript中闭包的理解

    关于 const     let      var  总结: 建议使用 let  ,而不使用var,如果要声明常量,则用const. ES6(ES2015)出现之前,JavaScript中声明变量只有 ...

  10. nmcli简单使用

    nmcli connection 查看所有网卡信息 nmcli connection show ens33 查看网卡具体信息 nmcli connection reload 是配置文件生效