- 军军小站|张军博客
拥有Python标签的文章
Python

python实现定制交互式命令行的方法

Python的交互式命令行可通过启动文件来配置。当Python启动时,会查找环境变量PYTHONSTARTUP,并且执行该变量中所指定文件里的程序代码。该指定文件名称以及地址可以是随意的。按Tab键时会自动补全内容和命令历史。这对命令行的有效增强,而这些工具则是基于readline模块实现的(这需要readline程序库辅助实现)。此处为大家举一个简单的启动脚本文件例子,它为python命令行添加了按键自动补全内容和历史命令功能。[python@pytho

系统 2019-09-27 17:48:02 2039

Python

《Fluent Python》---一个关于memoryview例子的理解过程

近日,在阅读《FluentPython》的第2.9.2节时,有一个关于内存视图的例子,当时看的一知半解,后来查了一些资料,现在总结一下,以备后续查询;示例复述添加了一些额外的代码,便于更好理解memoryview>>>importarray>>>numbers=array.array('h',[-2,-1,0,1,2])>>>memv=memoryview(numbers)>>>len(memv)5>>>memv[0]-2>>>memv_oct=memv.

系统 2019-09-27 17:47:26 2039

Python

Python实现partial改变方法默认参数

在Python的标准库中,functools库中有很多对方法有操作的封装功能,partialObjects就是其中之一,他可以实现对方法参数默认值的修改。本文就以实例代码说明这一功能。下面就看下简单的应用测试实例。具体代码如下:#!/usr/bin/envpython#-*-coding:utf-8-*-#python2.7x#partial.py#authror:orangleliu'''functools中Partial可以用来改变一个方法默认参数1改

系统 2019-09-27 17:46:44 2039

Python

详解详解Python中writelines()方法的使用

writelines()方法写入字符串序列到文件。该序列可以是任何可迭代的对象产生字符串,字符串为一般列表。没有返回值。语法以下是writelines()方法的语法:fileObject.writelines(sequence)参数sequence--这是字符串的序列。返回值此方法不返回任何值。例子下面的例子显示writelines()方法的使用。#!/usr/bin/python'#Openafileinwitremodefo=open("foo.txt

系统 2019-09-27 17:46:22 2039

Python

Python性能提升之延迟初始化

所谓类属性的延迟计算就是将类的属性定义成一个property,只在访问的时候才会计算,而且一旦被访问后,结果将会被缓存起来,不用每次都计算。构造一个延迟计算属性的主要目的是为了提升性能property在切入正题之前,我们了解下property的用法,property可以将属性的访问转变成方法的调用。classCircle(object):def__init__(self,radius):self.radius=radius@propertydefarea(

系统 2019-09-27 17:38:44 2039

Python

用Python创建声明性迷你语言的教程

大多数程序员考虑编程时,他们都要设想用于编写应用程序的命令式样式和技术。最受欢迎的通用编程语言(包括Python和其它面向对象的语言)在样式上绝大多数都是命令式的。另一方面,也有许多编程语言是声明性样式,包括函数语言和逻辑语言,还包括通用语言和专用语言。让我们列出几个属于各个种类的语言。许多读者已经使用过这些工具中的许多工具,但不见得考虑过它们之间的种类差别。Python、C、C++、Java、Perl、Ruby、Smalltalk、Fortran、Bas

系统 2019-09-27 17:38:32 2039

Python

Python中在脚本中引用其他文件函数的实现方法

在导入文件的时候,Python只搜索当前脚本所在的目录,加载(entry-point)入口脚本运行目录和sys.path中包含的路径例如包的安装地址。所以如果要在当前脚本引用其他文件,除了将文件放在和脚本同一目录下,还有以下几种方法,1.将文件所在位置添加到sys.path中importsyssys.path.insert(0,'/path/to/application/app/folder')#orsys.path.append('/path/to/ap

系统 2019-09-27 17:38:13 2039

Python

利用python分析access日志的方法

前言WAF上线之后,处理最多的是误报消除。产生误报有多种原因,比如web应用源码编写时允许客户端提交过多的cookie;比如单个参数提交的数值太大。把误报降低到了可接受的范围后,还要关注漏报。WAF不是神,任何WAF都可能被绕过。所以还需要定位漏过的攻击,明确漏报的原因,才能updateWAF的策略。要定位漏报,就必须分析Web应用的访问日志了。一个站点,每天产生的access日志大概接近1GB,显然靠肉眼看是不现实的。这就需要用python帮助自动分析。

系统 2019-09-27 17:37:54 2039

Python

python之生产者消费者模型实现详解

代码及注释如下#AutherBob#--*--conding:utf-8--*--#生产者消费者模型,这里的例子是这样的,有一个厨师在做包子,有一个顾客在吃包子,有一个服务员在储存包子,这个服务员我们就可以用queue来实现importthreadingimportqueueimporttime'''defconsumer(p,que):id=que.get()print("[%s]来吃包子了,我吃到的包子的名字是[%s]"%(p,id))defprodc

系统 2019-09-27 17:55:40 2038

Python

Python中错误(Error)分类处理

Python标准异常总结这是错误类型表总结,不用记住,只要有印象即可,碰到需要处理的错误类型可以查表。一般捕获错误和处理错误使用try-except-finally:try:#检测范围exceptException[asreason]:#出现异常(Exception)后的处理代码finally:#无论如何都会执行的代码,如关闭文件(f.close())等错误类型错误解释AssertionError断言语句(assert)失败AttributeError尝试

系统 2019-09-27 17:55:11 2038

Python

Python爬虫学习之获取指定网页源码

本文实例为大家分享了Python获取指定网页源码的具体代码,供大家参考,具体内容如下1、任务简介前段时间一直在学习Python基础知识,故未更新博客,近段时间学习了一些关于爬虫的知识,我会分为多篇博客对所学知识进行更新,今天分享的是获取指定网页源码的方法,只有将网页源码抓取下来才能从中提取我们需要的数据。2、任务代码Python获取指定网页源码的方法较为简单,我在Java中使用了38行代码才获取了网页源码(大概是学艺不精),而Python中只用了6行就达到

系统 2019-09-27 17:53:37 2038

Python

python多线程

python多线程深入理解低级接口基本使用EventSemaphore线程通信高级接口低级接口基本使用join()方法用来阻塞主线程。可以注释掉、看看打印顺序。importthreadingimporttimedeftest(n):time.sleep(1)print(n)t=threading.Thread(target=test,args=(7,))t.start()t.join()#等待子线程执行完毕,才继续执行主线程。print('主线程执行完毕'

系统 2019-09-27 17:53:20 2038

Python

如何利用Python模拟GitHub登录详解

前言最近学习了Fiddler抓包工具的简单使用,通过抓包,我们可以抓取到HTTP请求,并对其进行分析。现在我准备尝试着结合Python来模拟GitHub登录。Fiddler抓包分析首先,我们想要模拟一个网站的登录,我们必须要简单了解其大致过程。在这里,我通过Fiddler来抓取GitHub登录的请求,从网页上登录的URL为:https://github.com/login,抓包结果如下:左边的是会话列表,右边的是请求和响应的数据。一般情况下,登录都是用PO

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

Python

Python中使用MELIAE分析程序内存占用实例

写的dht协议搜索的程序,这几天优化了一下发现速度确实快了好多。但是出现了一个新的问题,内存直接飙升,我开了十个爬虫占用内存800m。开始我以为是节点太多了,找了几个小问题修改一下,发现没用。后来就到网上查找python内存分析的工具,查了一点资料发现python有个meliae库操作非常方便,就使用分析了一下,发现不是节点太多的原因00,是保存发送的t_id,用来标示返回的消息是那个发出的一个字典过大了。从分析的结果非常容易的定位了某个对象的数量和大小,

系统 2019-09-27 17:52:11 2038

Python

python程序异常崩溃时如何快速分析并解决问题

程序异常崩溃时会提供非常详细的错误信息,掌握正确的分析方法,就可以快速定位问题并解决问题,下面这段代码会引发异常导致程序终止deffunc_tet():func_sum('4',3)deffunc_sum(a,b):value=a+breturnvaluefunc_tet()运行这段程序,异常信息如下我将异常信息分为两部分,分析时,先关注最后一行绿色框内的信息,这里的信息明确的指明了异常的类型和异常的解释信息,这是我们分析问题的第一步,随着经验的积累,你很

系统 2019-09-27 17:52:03 2038