macOS python2 python3共存时如何管理pip

macOS下同时安装了python2和python3,运行pip,只安装python2 中的模块,比如安装requests模块,只在python2下生效。

如何安装到python3下面呢?

python2和python3能不能一起愉快的玩耍呢?

(more…)

Centos 7中安装Python包管理工具——Pip教程

pip 是一个常用的Python包管理工具,主要是用于安装 PyPI 上的软件包,可以替代 easy_install工具。

在Centos 7中安装Python包管理工具—Pip时,使用 sudo yum install python-pip 时无法安装,是由于Centos发行版的源内容更新的比较滞后,导致找不到 python-pip 这个包管理工具。

这里解决的是无法安装pip 时问题,或者说是如何在Centos 7中安装Python包管理工具Pip 。

一、脚本安装pip

首先下载get-pip.py脚本,然后运行即可安装:

二、使用包管理软件安装

1、首先安装epel扩展源:

2、然后安装python-pip

python 2.7 does not support star expression

python 3 support star expression, but python 2.7 does NOT support star expression.

here is a example:

in python 3

>>> a, *b = (1, 2, 3)
>>> b
[2, 3]
>>> a, *b = (1,)
>>> b
[]

in python 2.7, you should do this instead:


c = (1, 2, 3)
a, b = c[0], c[1:]

Python的正则提取技巧

用python正则提取字符串的方法


在日常工作中经常遇见在文本中提取特定位置字符串的需求.python的正则性能好,很适合做这类字符串的提取,这里讲一下提取的技巧,正则表达式的基础知识就不说了,有兴趣的可以看re的教程. 提取一般分两种情况,一种是提取在文本中提取单个位置的字符串,另一种是提取连续多个位置的字符串.日志分析会遇到这种情况.下面我会分别讲一下对应的方法:

1. 单个位置的字符串提取

这种情况我们可以使用(.+?)这个正则表达式来提取. 举例,一个字符串”a123b”,如果我们想提取ab之间的值123,可以使用findall配合正则表达式,这样会返回一个包含所以符合情况的list,代码如下:

1.1贪婪和非贪婪匹配

如果我们有一个字符串”a123b456b”,如果我们想匹配a和最后一个b之间的所有值而非a和第一个出现的b之间的值,可以用?来控制正则贪婪和非贪婪匹配的情况. 代码如下:

import re
str = "a123b456b"
print re.findall(r"a(.+?)b", str)
#输出['123']
#?控制只匹配0或1个,所以只会输出和最近的b之间的匹配情况
print re.findall(r"a(.+)b", str)
#输出['123b456']
print re.findall(r"a(.*)b", str)
#输出['123b456']

1.2多行匹配

如果你要多行匹配,那么需要加上re.S和re.M标志. 加上re.S后, .将会匹配换行符,默认.不会匹配换行符. 代码如下:


str = "a23bna34b"
re.findall(r"a(d+)b.+a(d+)b", str)
#输出[]
#因为不能处理str中间有n换行的情况
re.findall(r"a(d+)b.+a(d+)b", str, re.S)
#s输出[('23', '34')]

加上re.M后,^$标志将会匹配每一行,默认^和$只会匹配第一行. 代码如下:


str = "a23bna34b"
re.findall(r"^a(d+)b", str)
#输出['23']
re.findall(r"^a(d+)b", str, re.M)
#输出['23', '34']

2. 连续多个位置的字符串提取

这种情况我们可以使用(?P…)这个正则表达式来提取. 举例,如果我们有一行webserver的access日志:’192.168.0.1 25/Oct/2012:14:46:34 “GET /api HTTP/1.1” 200 44 “http://abc.com/search” “Mozilla/5.0″‘,我们想提取这行日志里面所有的内容,可以写多个(?Pexpr)来提取,其中name可以更改为你为该位置字符串命名的变量,expr改成提取位置的正则即可. 代码如下:

import re
line ='192.168.0.1 25/Oct/2012:14:46:34 "GET /api HTTP/1.1" 200 44 "http://abc.com/search" "Mozilla/5.0"'
reg = re.compile('^(?P[^ ]*) (?P[^ ]*) "(?P[^"]*)" (?P[^ ]*) (?P[^ ]*) "(?P[^"]*)" "(?P[^"]*)"')
regMatch = reg.match(line)
linebits = regMatch.groupdict()
print linebits
for k, v in linebits.items() :
print k+": "+v

输出的结果为:

status: 200
referrer: http://abc.com/search
request: GET /api HTTP/1.1
user_agent: Mozilla/5.0
date: 25/Oct/2012:14:46:34
size: 44
remote_ip: 192.168.0.1

在Ubuntu下配置舒服的Python开发环境

Ubuntu 提供了一个良好的 Python 开发环境,但如果想使我们的开发效率最大化,还需要进行很多定制化的安装和配置。下面的是我们团队开发人员推荐的一个安装和配置步骤,基于 Ubuntu 12.04 桌面版本标准安装。

(more…)

匹配IP字串、域名的正则表达式

1。IP

IP字串,由四段组成,每一段是0~255的数字,段与段之间用小数点隔开,比如61.139.2.69就是一个合法的IP字串。如果正则表达式写成d{1,3}(.d{1,3}){3}无疑是不负责的,因为它可以匹配300.400.555.666这样的非法IP字串。要匹配一个0~255之间的数,有几种匹配方式,下面是其中一种:

(more…)

TypeError: expected a character buffer object

描述:在向文件中写入数据时,要求数据格式为str类型,比如:

outputFileHandler.write(0)
参数为Int类型,则会引发类似错误:TypeError: expected a character buffer object

解决方法:将非str数据,强制转换为str类型,如上改为:

outputFileHandler.write(str(0))

Windows环境下安装python pip,方便你的开发

pip是python开发中必备的工具,它可以方便的安装各种python第三方库。

下面介绍两种安装pip的方式:

方法一:

1. 下载pip和setuptools

从github下载 pipgithub) 从bitbucket下载Setuptoolsbitbucket

2. 运行python脚本

3. 添加”%ProgramFiles%PythonXXScripts”为环境变量

方法二:

1. 从pip官方网站上下载pip1.2.1(下载地址),下载并解压。
2.

3. 运行下面的命令:

这样你就可以在windows命令行下使用pip命令了

python 第三方库 chardet 在 windows 下的安装

chardet是python的一个第三方库,可以用做文件的编码嗅探。

首先下载chardet文件包:http://pypi.python.org/pypi/chardet#downloads

下载chardet-2.2.1.tar.gz (md5)。

(more…)

Python核心编程第四章练习答案

4–1. Python 对象。与所有Python 对象有关的三个属性是什么?请简单的描述一下。

所有的Python 对像都拥有三个特性:身份,类型和值。

(more…)