摘要: Python 操作SQLite 如果数据多了存入文件就不太方便了,需要用到数据库 SQLite是一个关系型数据库,比较轻便,没有专门进程或服务维护(如没有用户、角色等),以文件的形式存在,适合小型项目 01 Python项目操作SQLite数据表 (1)创建项目 (2)创建库和表 老师安装了一个软件 阅读全文
posted @ 2019-07-10 19:27 艺杰兮 阅读(241) 评论(0) 推荐(0)
摘要: 准备excel数据 安装第三方包——读史xlrd 写是xlwt 打开excel并读取所有的工作簿 读取excel某个sheet中具体数据 阅读全文
posted @ 2019-07-10 19:19 艺杰兮 阅读(163) 评论(0) 推荐(0)
摘要: Json也是多语言通用的数据交互格式 创建一个json目录和一个文件 字典表数据转换为json数据——dumps(s代表字符串非复数含义) Json数据转换为字典表——loads(s代表字符串非复数含义) 把数据以json格式写入文件中——dump(注意没有s因为不是转为字符串) 读取json文件— 阅读全文
posted @ 2019-07-10 19:17 艺杰兮 阅读(199) 评论(0) 推荐(0)
摘要: 新建项目3 导入之前的CSV文件 并新建一个py文件 类似29课内容,创建一个项目的虚拟环境 模拟把程序中数据写入CSV文件(注意区分写入一行和写入多行函数区别) 结果:每行多加了一个空行 修改代码,修该改open方法写入时候增加一个参数newline为空 以dict形式写入CSV文件 阅读全文
posted @ 2019-07-10 19:09 艺杰兮 阅读(13224) 评论(0) 推荐(0)
摘要: 很多语言进行数据交互时,用类似txt肯定不方便,很多时候可以用CSV格式的文件,CSV(c表示逗号,s表示分隔,v表示value)即逗号分隔值,TSV表示table键分隔的值 新建一个目录csv 再新建CSV文件(老师从本地数据库导入) 老师用的数据库是SQL Server,从数据库导出CSV文件 阅读全文
posted @ 2019-07-10 19:06 艺杰兮 阅读(768) 评论(0) 推荐(0)
摘要: 今天讲的内容是关于数据文件的读写,我们都知道如果是普通的文本文件就比较简单,我们可以使用自带的open 方法打开我们的文件,可以使用read 和write进行读写 回顾,我们把不同文件的操作放到不同文件里面 新建一个目录txt,并在下面新建一个run的python文件 查看成文文件 读取文件 分别使 阅读全文
posted @ 2019-07-10 19:00 艺杰兮 阅读(315) 评论(0) 推荐(0)
摘要: 01 虚拟环境配置 不同项目可能用到不同的包或者不同的库。 一般情况是都安装到全局,但是这样不太方便,我们可以安装到虚拟环境中,从全局继承过来。这样不同的项目不会互相影响。 另外不同版本的一个解决方案也是用虚拟环境来做。 在项目下创建main文件 现在我不想用全局的解析器, 创建一个目录env文件夹 阅读全文
posted @ 2019-07-10 18:56 艺杰兮 阅读(156) 评论(0) 推荐(0)
摘要: 05参数化装饰器——装饰器更通用 参数化装饰器如何理解,简单理解就是让装饰器可以通用。场景举例,现在有个需求要改某一段文字,既要加<P>标签,又要加<B>,还有加<Div>。是不是意味着需要定义多个装饰器, 答案不需要,可以通过参数化形式共用一个装饰器,传入不同参数就可以了。 001装饰器未使用参数 阅读全文
posted @ 2019-07-10 18:50 艺杰兮 阅读(295) 评论(0) 推荐(0)
摘要: 04 类定义装饰器 上节通过函数定义装饰器,本节通过类定义装饰器 001 定义类装饰器 定义一个类,类里面两个函数,一个构造函数init(),一个调用函数call() 构造函数init时候,传递一个函数func()进来 调用函数call(),用于装饰传递进来的函数 用装饰器类P修饰get_text( 阅读全文
posted @ 2019-07-10 18:47 艺杰兮 阅读(633) 评论(0) 推荐(0)
摘要: 03 函数定义装饰器 前面讲解了装饰器的一些概念和装饰器会用到的函数的知识,接下来讲解装饰器的定义,有两种方式可以定义装饰器一种是通过函数定义,一种是通过类定义。 001函数定义装饰器 如何定义 装饰器名称本身是一个函数,定义时候类似函数一样定义 装饰器需要修饰另外一个函数,所以装饰器需要一个传入一 阅读全文
posted @ 2019-07-10 18:45 艺杰兮 阅读(280) 评论(0) 推荐(0)
摘要: 02函数嵌套及跨域访问 001函数嵌套 要点:返回的函数名有括号返回的是结果,没有括号返回的是对象地址 002函数作用域 阅读全文
posted @ 2019-07-10 18:42 艺杰兮 阅读(220) 评论(0) 推荐(0)
摘要: 装饰器属于高级知识,自己定义装饰器情况较少。但我们会用到包里面或第三方中的装饰器, 01函数基础 001概述 之前在函数定义时,讲过类里面的方法可以通过@staticmethod把方法定义成静态方法或者叫类的方法,从而区别于实例方法。 场景:如对函数添加一些跟踪或者日志功能,或者调试时候验证有效性测 阅读全文
posted @ 2019-07-10 18:41 艺杰兮 阅读(162) 评论(0) 推荐(0)
摘要: 讲一个新模块, 该模块给我们提供一个抽象层,我们的程序最终解决还是要依靠多线程和多进程,但是我们不用考虑多进程和多线程的实现细节,我们通过python封装好的组件,能够快速实现多进程和多线程的编码 当我们解决需求时,需考虑好是IO密集型用多线程还是计算密集型用多进程。该模块下提供了多线程执行器和多进 阅读全文
posted @ 2019-07-10 18:36 艺杰兮 阅读(200) 评论(0) 推荐(0)
摘要: 06 multiprocessing多进程模块 之前讲解了多线程的开发,合理利用多线程可以提高效率,但是由于Python GIL全局解释器锁的限制,多线程更多的适合IO密集型的操作,因为IO密集型会随时释放GIL,这样可以允许更多的并发。所以IO密集型首选多线程。 但是如果是计算密集型,这时候我们可 阅读全文
posted @ 2019-07-10 18:26 艺杰兮 阅读(234) 评论(0) 推荐(0)
摘要: 05队列queue 通俗理解就是排队,典型的保障多线程共享资源的有序操作。 Python提供了模块queue,分为三种队列,先进先出、后进先出(即栈)、优先级别队列(由算法规则决定出的顺序) 001 以先进先出队列为例 代码导入模块 生产者:每隔半秒往队列放入一个随机数,一共放五个 消费者:每次取内 阅读全文
posted @ 2019-07-10 18:21 艺杰兮 阅读(252) 评论(0) 推荐(0)
摘要: 001 场景例子 三人同时往一个框里放鸡蛋,没有锁情况,会出现顺序混乱 结果是混乱的 002改进 声明一个锁 放鸡蛋时候加锁和开锁。或者用with lock: 主函数和程序入口 结果正确 阅读全文
posted @ 2019-07-10 18:17 艺杰兮 阅读(160) 评论(0) 推荐(0)
摘要: 001 例子1:子线程统一执行 代码说明: 声明数组存放线程实例,目的是子线程统一执行开始 threading.Thread()方法的参数说明: 第一个参数group默认为空,无实际意义,为后来版本预留位置 第二个参数target,表示当前线程执行哪个函数 第三个参数args:第二个参数里面函数的是 阅读全文
posted @ 2019-07-10 18:11 艺杰兮 阅读(582) 评论(0) 推荐(0)
摘要: 多线程并非并发编程的唯一技术手段,但是用的比较多的还是多线程。 001 单线程例子 创建文件 002 多线程例子 缺点没有控制进程结束的机制 _thread已经不推荐使用了(所以前面有有个下划线),学习阶段用于实验 (1)新建文件 函数_thread(第一个参数,第二个参数) 第一个参数,只需要写函 阅读全文
posted @ 2019-07-10 17:58 艺杰兮 阅读(230) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2019-07-10 17:55 艺杰兮 阅读(169) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2019-07-10 17:51 艺杰兮 阅读(162) 评论(0) 推荐(0)
摘要: OS模块常用功能 获取版本 获取工作目录 获取工作目录下面内容 切换工作目录 获取某个目录下面内容 获取当前进程 获取父级进程 了解例子略,有兴趣自己研究 阅读全文
posted @ 2019-07-10 17:50 艺杰兮 阅读(163) 评论(0) 推荐(0)
摘要: 02 sys模块应用 001观察平台与版本信息 导入 查看平台名称/python版本 Sys.path——显示了一些目录环境,如解析器放在哪个路径下,主环境在哪里,pycharm的路径在哪里 002 观察异常信息 系统里面通过了可以捕获最近的一些异常信息 可以捕获当前程序最后抛出的异常 003 命令 阅读全文
posted @ 2019-07-10 17:48 艺杰兮 阅读(198) 评论(0) 推荐(0)
摘要: 01系统工具 背景介绍,系统工具就是用于管理系统的工具。如window的命令行工具,linux下的shell脚本,Mac系统叫终端。 Python中提供了模块可以直接操作各系统的系统工具,具体模块有很多,主要讲sys和os,其中os支持跨平台,且os.path提供文件及目录工具 阅读全文
posted @ 2019-07-10 17:37 艺杰兮 阅读(189) 评论(0) 推荐(0)
摘要: 综合应用 001字符串切割 分隔符切割字符串 非字母形式切割 减号切割 减号切割且把减号包括在结果里面 Spile的另外一个参数,maxsplit表示拆分的最大数量 maxsplit=2表示保留两个切割结果,其余的作为一个整体 maxsplit=1表示只保留一个 002字符串替换sub 如果用模式编 阅读全文
posted @ 2019-07-10 17:36 艺杰兮 阅读(212) 评论(0) 推荐(0)
摘要: 05 Group编组 该小结查看更详细的编组对象group 001场景 需求:匹配前后字符的模式和内容都一直的结果 下面模式不对,无法匹配内容一致 ‘\1’表达的含义是:在当前的位置重现刚刚的第一个编组,1是模组序号 下面文本没有符合的内容,所以无法匹配 下面内容匹配成功 02模式组声明及声明同时取 阅读全文
posted @ 2019-07-10 17:30 艺杰兮 阅读(693) 评论(0) 推荐(0)
摘要: 04 Python正则模式对象之MatchObject MatchObject就是模式对象,如果模式用括号进行了分组,MatchObject可以用group等方法进行观察细节 例子 查询有多少个匹配项,用findall 观察细节,加括号进行分组,分组后用group()或者group(0)表示所有分组 阅读全文
posted @ 2019-07-10 17:26 艺杰兮 阅读(1017) 评论(0) 推荐(0)
摘要: 模式分为编译和非编译两种 模式反复重用,建议用编译方式 ,临时用建议用非编译方式 例子1 方式1:先定义一个模式字符串如pattern,并对模式字符串进行编译用方法compile 方式2:不进行编译,直接用re下面的findall(‘模式’,查看内容) 编译小细节:需要注意转移字符 默认从第0个字符 阅读全文
posted @ 2019-07-10 17:20 艺杰兮 阅读(363) 评论(0) 推荐(0)
摘要: 02 语法:特殊符号与字符 001匹配规则——字符、量词 简要记忆:大写取反\D \S \W 002 贪婪与非贪婪、边界匹配 简单理解:贪婪找到最大范围匹配内容,非贪婪找到最小范围匹配内容 例子:假设有下面文本内容 贪婪匹配 如: 匹配结果如下: 非贪婪匹配——问号 问号说明: 单个字符后面加一个问 阅读全文
posted @ 2019-07-10 17:13 艺杰兮 阅读(181) 评论(0) 推荐(0)
摘要: 01正则表达式概述 举例: \d+ 用于匹配数字 [A-Z]\w+ 用于匹配首字母大字开头的单词 简要概述 阅读全文
posted @ 2019-07-10 17:10 艺杰兮 阅读(162) 评论(0) 推荐(0)