分类:Python

Home / 分类:Python

分布式进程

2018-4-8 01:42:14 | Distributed, Python | 没有评论

面试的时候,相比Java老是问算法,Python经常会问一些概念,比如元类,闭包等等,当然分布式进程也是其中之一

分布式进程应该爬虫用得比较多,一个作为master,其它workers可以作为分布式进程来执行各自的业务,而它们之间通过网络进行数据通信

主要用到了managers子模块,官方说明了一些用法

16.6.2.7. Managers

Managers provide a way to cr[……]

Read more

Python闭包

2018-3-28 23:52:55 | Python | 没有评论

装饰器实际上就是对闭包的使用

Python里一个函数里面又定义了一个函数,内部函数却可以引用外部函数的参数,局部变量;而当外部函数执行完毕返回内部函数引用的时候,以上所有参数也一同保存在返回的内部函数当中,这样就构成一个闭包,也就是说,外部函数要返回的时候发现自己的局部变量内部函数还要用,那么本属于它的局部变量并没有释放,而是给内部函数引用,自己结束返回

def outside(a):
b[......]

Read more

Python的multiprocessing引起的问题

2015-12-11 01:28:07 | Python | 没有评论

刚在用到python的mutliprocessing的时候,遇到了一个问题

引申为一个小例子就是,比如多进程并发在不同的az上创建虚拟机

#!/usr/bin/env python

import multiprocessing

class Nvs(object):
    def __init__(self):
        self.az_list = ['xiaoshan', 'bin[......]

Read more

Python函数装饰器

2015-8-22 23:33:10 | Python | 没有评论

Tempest里用例的测试都会用到装饰器,虽然声称很方便,但我看来还是感觉比较非主流

#!/usr/bin/env python
# coding: utf-8

def decorator(func):
    def subfun():
        print 'subfun()'
        return func
    return subfun

@decorator
def[......]

Read more

Linux实时打印网口流量脚本

2015-5-22 01:30:58 | Python | 没有评论

为了测试丢包情况,重新弄了一个网卡数据信息脚本,比较随意

#!/usr/bin/env python
######################################
#nic_traffic.pl => nic_status.py
#HuiLi
######################################
import sys
import tim[......]

Read more

HTTPie

2015-5-14 23:39:57 | Python | 没有评论

GitHub上排名第一的python开源项目名叫HTTPie,它的描述为:HTTPie is a command line HTTP client, a user-friendly cURL replacement,看样子跟cURL的功能类似,之前有项目是通过python脚本调用cURL将磁盘中存储的JSON数据通过HTTP POST的方式发送给各个接收端来分别进行解析,处理并展示,既然是比较火的[……]

Read more

绑定

2015-5-11 22:56:01 | Python | 没有评论

方法在所属的类定义了实例时,方法才绑定了那个实例,没有实例的时候,方法就是未绑定状态,而定义方法的时候,第一个参数都是self,代表的是调用此方法的实例

在实例调用方法的时候,由于实例都是作为第一个参数传递到方法调用中的,也就是self变量引用了方法所绑定的实例,所以在方法定义上第一个参数必须是self

在方法中可以没有用到self,比如仅仅打印一个hello world,这时候就没有使用到调用该[……]

Read more

新/旧式类多重继承搜索调用顺序的区别

2015-5-10 18:50:14 | Python | 没有评论

在多重继承当中,派生的类中,表面上看基类排列的顺序不同,会导致输出不同,当然实质上是调用的类方法不同,更实质原因是搜索方法的方式不同

__author__ = 'LiHui'

class MyBook(object):
    def __init__(self):
        print 'MyBook __init__'
    def foo(self):
        print '[......]

Read more

python的package问题

2015-5-6 23:25:22 | Python | 没有评论

最近Java里的package弄习惯了,回到python里,貌似有点小不习惯,java里只需要import整个package.*,当然写得更详细具体一些更佳,然后就可以调用类创建对象,以及调用方法;而python里一个简单的package,import了,难道还需要通过module来调用类名创建对象?

次日补充:看来昨夜头脑头脑发热,没搞清楚问题所在,简单问题,想歪了~!

MyFile1.py

__[......]

Read more

python装饰器

2015-4-20 23:16:39 | Python | 没有评论

今天在Leetcode刷题的时候,碰到了python里一个装饰器,这是python后来版本里加的一个名词,在此之前有一些概念

 

举个例子,一个基本的实例方法就向下面这个:

 
class Kls(object):
    def __init__(self, data):
        self.data = data
    def printd([......]

Read more

PyCharm 4.0.6 注册码

2015-4-5 12:51:03 | Python | 没有评论

Professional Edition版本比Free版本多了很多东西,比如

Web development,Django等等,重新下了Professional版本,虽然是只30天免费,但是到时候重装一下应该也是OK的

不过找到一个License,有需求的可以用一用

name : newasp

===== LICENSE BEGIN =====
09086-12042010[......]

Read more

1:对象

python对象有三个属性:身份,类型和值

身份是唯一标识自己的东西,就像身份证号一样,不过这里可以理解成对象的内存地址;类型决定了对象可以保存什么类型的值,可以进行哪些操作等;值就是对象的数据项

2:变量

变量储存的是内存对象的引用,可以形象理解成指向某种类型对象的一个引用,指向对象,或者理解成一个对象的标签,名字;变量无类型

关于对象和变量

(1)a = 1

一个整型对象被创建,值为[……]

Read more

python执行顺序

2015-3-3 12:42:35 | Python | 没有评论

本来是想看看各类变量和成员变量相互关系,结果下面几行代码让对执行顺序产生了一点疑问

#!/usr/bin/env python
# coding = utf-8

class myClass:
    a = 1
    print 'class:   ' + str(id(a))

    def __init__(self):
        print 'init:    ' + str(id[......]

Read more

矩阵转置

2015-3-1 22:52:57 | Python | 没有评论

转置就是矩阵行列对换,相当于另一种显示形式,ndarray数组还有这种转置特性,而且和数学里做转置的符号T一样,也有一个T属性

>>> import numpy as np
>>> data = np.arange(15).reshape((3, 5))
>>> data
array([[ 0,  1,  2,  3,  4],
       [[......]

Read more

NumPy

2015-3-1 01:03:36 | Python | 没有评论

python里内置的数据类型里没有多维数组,NumPy是一个数据分析的包,提供了一个N维数组对象ndarray,可以作为大数据容器做一些数据计算

通过sourceforge很容易下载到NumPy,但假如是在windows下安装的时候,要注意python一定要安装32bit版本,因为NumPy提供的只有32bit的,假如你安装了个64bit的python,在安装NumPy过程中会找不到python,[……]

Read more

检查Windows声音系统

2014-11-26 23:45:06 | Python | 没有评论

睡前看到一个好玩的,python的winsound模块可以检查windows系统声音子系统的配置是否是正常的

#!/usr/bin/env python

import winsound
try:
    winsound.PlaySound(‘*’, winsound.SND_ALIAS)
except RuntimeError, e:
   [……]

Read more

Python网络爬虫试水分类目录

2014-11-22 01:16:47 | Python | 没有评论

看旁边同事阿福每晚回去刷题研究算法,我来了一句,咋们用python把抓包分析改写了耍耍如何,pylibpcap和pynids接口都有,只不过上个月尝试过,在两者衔接的地方一直没有搞定,有福同学老道地说了一句:我倒是只想把HTTP部分改写下,听了他的话,感觉的确如此,那两部分都已经很成熟了,改来改去也就那模样,倒是HTTP的解析貌似更合适,过了会,他又来了句:我觉得还不如搞一个网络爬虫

网络爬虫只是[……]

Read more

Python socket模拟聊天室(server)

2014-11-19 23:58:59 | Python | 没有评论

连上server之后,会给每个client启动两个线程,同样处理接收和发送,唯一区别多了一个接收到输入后的激活所有输出线程的过程

server端

#!/usr/bin/env python

import socket
import sys
import threading
 
con = threading.Condition()
HOST = raw_input(“input the serve[……]

Read more

Python socket模拟聊天室(client)

2014-11-19 23:31:21 | Python | 没有评论

网络编程这块应用的不多,今后多努力学习学习,但干啥都不能一口吃个胖子,往往最后瘦子也吃不了,还是从点滴做起,贵在坚持

今天浏览到一个socket实现的聊天室,挺有意思的,就转过来学习学习,做人要厚道,楼主都这么低调,怎么能窃取别人劳动果实呢,http://www.oschina.net/code/snippet_1387924_25928,有兴趣的可以自己传送去

这里脚本的运行不需要带任何参数,交[……]

Read more

Python不能再简单的对话框

2014-11-18 22:51:26 | Python | 没有评论

自从4年前干过MFC,整天跟对话框打交道,后来就一直没有碰过了,有一种甚是怀念的感觉,突然用python几行代码堆了一个最简单的对话框,感觉萌萌哒~!

#!/usr/bin/env python

import Tkinter

top = Tkinter.Tk()

hello = Tkinter.Label(top, text = ‘Hello World!’)
hello.pack()

quit =[……]

Read more

Python自动发送邮件

2014-11-17 00:31:21 | Python | 没有评论

一直想实现一种机制,定时做某些事,然后如果检验没通过,自动发送邮件,定时和检验都好做,自动发邮件一直没有一种简单的方法,不过自从接触了无所不能的python,一切都变得简单,这周可以弄到自动化检测当中去

下面这段code可以实现自动发送邮件,根据send和recv的地址,smtp要设置有效,我设置163邮箱是可以成功发送的

#/usr/bin/env python

import smtplib
fr[……]

Read more

Python对象拷贝

2014-11-16 13:21:26 | Python | 没有评论

直接‘show me the code’,懒得长篇大论一堆文字

1:赋值

>>> a = [1, [1]]
>>> b = a
>>> a[1][0] = 2
>>> print a, b
[1, [2]] [1, [2]]
>>> a[0] = 2
>>> print a, b
[2, [2]] [2,[……]

Read more

Python enumerate

2014-11-15 15:45:48 | Python | 没有评论

python里遍历列表非常容易,通过for即可,而不像其它语言,有for和foreach两种分别来遍历

假如想遍历元素的同时,还想得到序号,也就是数组里的下标,可通过enumerate来获取:

>>> list = [‘a’, ‘b’, ‘c’]
>>> for i,x in enumerate(list):
…    [……]

Read more

Python读取文件某行数据

2014-11-15 14:17:56 | Python | 没有评论

文本处理是脚本语言的强项,有很多文本处理都用perl写原因是感觉简洁,其实python做起来也是十分简单的,只不过自己不熟

从文件中读取指定的行,依赖linecache这个模块很容易做到

$ cat test.txt
1111111111111
222222222222
3333333333333333
4444444444
555555555555

>>> import linecach[……]

Read more

Python True 1

2014-11-14 00:07:42 | Python | 没有评论

上次测试中,while 1比while True貌似要快,今天在一位大神的个人网站找到了答案,这域名选的不错~!http://www.pythoner.com/356.html,有兴趣钻研更深的可以直接查看,而且还有很多有意思的东西可以学习

在python2中,True目前还不是关键字,因此可以任意对其赋值,这就导致了程序在每次while True都需要对True还是False来进行检查判断;但是[……]

Read more

Python while性能

2014-11-11 00:04:19 | Python | 没有评论

突然看到一种说法while True比while 1慢?我可是一直都写while True,在咱们注重性能的公司,这可是犯了大忌了

$ cat test.py
#!/usr/bin/env python
i = 0
while True:
    i += 1
    if i == 100000000:
   &nbs[……]

Read more

Perl和Python遍历文件小例子性能比较

2014-11-10 23:02:42 | Perl, Python | 没有评论

一般来说,perl比python性能要好,不过这句话只针对同等水平的程序而言,像我等新手而言,再怎么写也是脚本语言,今天就随手在cygwin里写两个小例子,看看他们的执行速率

要求就分别读一个文件,每读一行,为了表示公平,变量就加1,最后将变量的最终值打印出来结束,当然仅属参考,因为可能会有更好更快的方法

随手下载一个网页,$ wget www.lihuia.com
–2014-11-10 23:[……]

Read more

Python命令行中显示进度条

2014-11-8 23:20:45 | Python | 没有评论

VC里,进度条只需要点击鼠标拖动一个控件就欧了,想要在命令行较长时间执行过程中显示出运行的进度,可以通过如下类完成

#!/usr/bin/env python

import sys
import time

class progressbar(object):

    def __init__(self, finalcount, block_char = ‘.’):
&nb[……]

Read more