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. [Google] 9717 取数对弈

    我写的Python代码: class Solution(object): def getNumberGame(self, n, nums): m = len(nums) dp = [[0] * m f ...

  2. beautifulsoup 模块

    一.介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你 ...

  3. e.g. i.e. etc. et al. w.r.t. i.i.d.英文论文中的缩写语

    e.g. i.e. etc. et al. w.r.t. i.i.d. 用法:, e.g., || , i.e., || , etc. || et al., || w.r.t. || i.i.d. e ...

  4. composer 无法配置命令行写入配置文件问题

    composer config repo.packagist composer https://packagist.phpcomposer.com 这条命令无法修改composer.json 添加中国 ...

  5. hadoop常见问题收集

    hadoop 搭建 常用命令记录 快捷键安装在/user/local/bin目录下 nano 文件名 ctrl + k 剪切一行 ctrl + o 保存并重命名,不重命名直接enter ctrl + ...

  6. Redis--set类型操作命令

    集合类型 set redis 的 Set 是 string 类型的无序集合,集合成员是唯一的,即集合中不能出现重复的数据 集合类型 set ——常用命令 sadd /smembers /sismemb ...

  7. Java基础IO类之File类

    大三了,目前基础太差了,重新学习过!代码如下,里面都有详细的解释每一行代码代表的意思~ package IODemo; import java.io.File; import java.io.File ...

  8. react实现提示消息容器,可以动态添加,删除内部子提示消息

    import React, { useState, useRef, useEffect } from 'react' import PropTypes from 'prop-types' import ...

  9. es6☞对象的解构赋值

    变量必须与属性同名 let {name, age} = {name: 'wang', age: 22}; console.log(name, age); //wang 22 let {name} = ...

  10. The 2018 ACM-ICPC Asia Nanjing Regional Programming Contest

    A. Adrien and Austin 大意: $n$个石子, 编号$1$到$n$, 两人轮流操作, 每次删除$1$到$k$个编号连续的石子, 不能操作则输, 求最后胜负情况. 删除一段后变成两堆, ...