Python

Python爬虫教程1.1 — urllib基础用法教程

综述本系列文档用于对Python爬虫技术的学习进行记录总结。Python版本是3.7.4urllib库介绍它是Python内置的HTTP请求库,也就是说我们不需要额外安装即可使用,它包含四个模块(主要对前三个模块进行学习):request:它是最基本的HTTP请求模块,我们可以用它来模拟发送一请求,就像在浏览器里输入网址然后敲击回车一样,只需要给库方法传入URL还有额外的参数,就可以模拟实现这个过程了。error:异常处理模块,如果出现请求错误,我们可以捕

系统 2019-09-27 17:54:27 2073

Python

python 迭代器与生成器

迭代器迭代式访问元素的一种方式,迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:iter()和next()。常见的字符串,列表或元组对象都可用于创建迭代器:>>>list=[1,2,3,4,5]>>>it=iter(list)>>>print(next(it))1>>>print(next(it))2迭代器对象可以使用常规for语句进行遍历:list=[

系统 2019-09-27 17:54:17 2073

Python

Python使用py2exe打包程序介绍

一、简介py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序。py2exe已经被用于创建wxPython,Tkinter,Pmw,PyGTK,pygame,win32comclient和server,和其它的独立程序。py2exe是发布在开源许可证下的。二、安装py2exe从http://prdownloads.sourceforg

系统 2019-09-27 17:54:15 2073

Python

Python中的 is 和 == 以及字符串驻留机制详解

is和==先了解下官方文档中关于is和==的概念。is表示的是对象标示符(objectidentity),而==表示的是相等(equality);is的作用是用来检查对象的标示符是否一致,也就是比较两个对象在内存中的地址是否一样(相当于检查id(a)==id(b)),而==是用来检查两个对象引用的值是否相等(相当于检查a.eq(b));这点和Java有点类似,只不过Java中是用==来比较两个对象在内存中的地址,用equals()来检查两者之间的值是否相等

系统 2019-09-27 17:53:56 2073

Python

Python-数据读取

同一行的数据都为浮点数,或者说是同一行的数据格式相同时:withopen(input_file,'r')asf:#打开文件header=f.readline().strip()#跳过一行column_names=header.split('|')#以管道分隔符切分数据values=np.loadtxt(f,delimiter='|')同一行的数据格式不相同时,比如字符串和浮点数结合时:选择跳过某一列或者只读取某一列数据,下面为只读取某一列数据withope

系统 2019-09-27 17:53:49 2073

Python

Python中的生成器和yield详细介绍

列表推导与生成器表达式当我们创建了一个列表的时候,就创建了一个可以迭代的对象:复制代码代码如下:>>>squares=[n*nforninrange(3)]>>>foriinsquares:printi014这种创建列表的操作很常见,称为列表推导。但是像列表这样的迭代器,比如str、file等,虽然用起来很方便,但有一点,它们是储存在内存中的,如果值很大,会很麻烦。而生成器表达式不同,它执行的计算与列表包含相同,但会迭代的生成结果。它的语法与列表推导一样,

系统 2019-09-27 17:53:14 2073

Python

如何编写快速且线程安全的Python代码

概述如今我也是使用Python写代码好多年了,但是我却很少关心GIL的内部机制,导致在写Python多线程程序的时候。今天我们就来看看CPython的源代码,探索一下GIL的源码,了解为什么Python里要存在这个GIL,过程中我会给出一些示例来帮助大家更好的理解GIL。GIL概览有如下代码:staticPyThread_type_lockinterpreter_lock=0;/*ThisistheGIL*/这行代码位于Python2.7源码ceval.c

系统 2019-09-27 17:52:39 2073

Python

python学习——锁

1.锁:Lock(1次放1个)同步锁线程安全,多线程操作时,内部会让所有线程排队处理。如:list/dict/Queue线程不安全+人=>排队处理。需求:a.创建100个线程,在列表中追加8b.创建100个线程v=[]锁-把自己的添加到列表中。-在读取列表的最后一个。解锁以后锁一个代码块:importthreadingimporttimev=[]lock=threading.Lock()deffunc(arg):lock.acquire()#锁的区域---

系统 2019-09-27 17:52:33 2073

Python

python文件处理

文件操作对编程语言的重要性不用多说,如果数据不能持久保存,信息技术也就失去了意义。按照本人经验,IO也是蛮头疼的一件事,因为不会用得太多,所以总是记不住API,每次都要重新google就会打断思路,还不一定每次都快速得到正确的文章。本文内容包括:文件的读写操作文件的各种系统操作存储对象遍历文件上代码:importosimportos.pathrootdir="d:/code/su/data"#指明被遍历的文件夹forparent,dirnames,file

系统 2019-09-27 17:52:30 2073

Python

Python yield与实现方法代码分析

yield的功能类似于return,但是不同之处在于它返回的是生成器。生成器生成器是通过一个或多个yield表达式构成的函数,每一个生成器都是一个迭代器(但是迭代器不一定是生成器)。如果一个函数包含yield关键字,这个函数就会变为一个生成器。生成器并不会一次返回所有结果,而是每次遇到yield关键字后返回相应结果,并保留函数当前的运行状态,等待下一次的调用。由于生成器也是一个迭代器,那么它就应该支持next方法来获取下一个值。基本操作#通过`yield`

系统 2019-09-27 17:52:18 2073

Python

Python相关文章索引(14)

基本常识python中的左位移和右位移利用Python在一个文件的头部插入数据withopen(path,"r+")asf:old=f.read()f.seek(0)f.write(data)f.write(old)Debugxpath中遇到[]AttributeError:‘dict’objecthasnoattribute‘iteritems’Python3.5中:iteritems变为items【Python】ufunc‘subtract’didno

系统 2019-09-27 17:52:10 2073

Python

深入分析python数据挖掘 Json结构分析

json是一种轻量级的数据交换格式,也可以说是一种配置文件的格式这种格式的文件是我们在数据处理经常会遇到的python提供内置的模块json,只需要在使用前导入即可你可以通过帮助函数查看json的帮助文档json常用的方法有load、loads、dump以及dumps,这个都属于python初级,我不做过多解释json可以结合数据库一起使用,在这以后要处理大量数据时非常有用下面我们正式来利用数据挖掘对json文件进行处理现在很多网站都运用了Ajax,所以一

系统 2019-09-27 17:51:28 2073

Python

Pycharm+django2.2+python3.6+MySQL实现简单

1准备工作1.1环境搭建1.1.1安装python3.6python安装官网1.1.2安装django2.2pipinstalldjango(==2.2.0)//不加版本默认安装最新版1.1.3安装pycharm(社区版,官网下载安装即可)在安装完成后要配置好需要的第三方库:(pip下载,推荐在pycharm下也配置虚拟环境)Django2.2连接mysql需要的库:PyMySQL,mysql,mysqlclinet验证码用到的库:django-simpl

系统 2019-09-27 17:51:19 2073

Python

利用python在大量数据文件下删除某一行的例子

python修改大数据文件时,如果全加载到内存中,可能会导致内存溢出。因此可借用如下方法,将分件分段读取修改。withopen('file.txt','r')asold_file:withopen('file.txt','r+')asnew_file:current_line=0#定位到需要删除的行whilecurrent_line<(3-1):#(del_line-1)old_file.readline()current_line+=1#当前光标在被删除

系统 2019-09-27 17:51:18 2073

Python

2.Python函数的进阶

1.今日内容1.1函数的参数*的魔性用法函数形参最终顺序1.2名称空间全局名称空间,局部名称空间,内置名称空间取值顺序与加载顺序作用域内置函数:globals()locals()1.3高阶函数(函数的嵌套)1.4关键字:globalnonlocal2.内容详细2.1函数的参数昨天我们从形参角度,讲了两种参数,一个是位置参数,位置参数主要是实参与形参从左至右一一对应,一个是默认值参数,默认值参数,如果实参不传参,则形参使用默认参数。那么无论是位置参数,还是默

系统 2019-09-27 17:50:44 2073