资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

python函数uni Python函数形参不需要声明类型

python 比较好用的库有哪些

Python常用库大全,看看有没有你需要的。

创新互联建站长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为东辽企业提供专业的网站设计制作、成都网站设计东辽网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。

环境管理

管理 Python 版本和环境的工具

p – 非常简单的交互式 python 版本管理工具。

pyenv – 简单的 Python 版本管理工具。

Vex – 可以在虚拟环境中执行命令。

virtualenv – 创建独立 Python 环境的工具。

virtualenvwrapper- virtualenv 的一组扩展。

包管理

管理包和依赖的工具。

pip – Python 包和依赖关系管理工具。

pip-tools – 保证 Python 包依赖关系更新的一组工具。

conda – 跨平台,Python 二进制包管理工具。

Curdling – 管理 Python 包的命令行工具。

wheel – Python 分发的新标准,意在取代 eggs。

包仓库

本地 PyPI 仓库服务和代理。

warehouse – 下一代 PyPI。

Warehousebandersnatch – PyPA 提供的 PyPI 镜像工具。

devpi – PyPI 服务和打包/测试/分发工具。

localshop – 本地 PyPI 服务(自定义包并且自动对 PyPI 镜像)。

分发

打包为可执行文件以便分发。

PyInstaller – 将 Python 程序转换成独立的执行文件(跨平台)。

dh-virtualenv – 构建并将 virtualenv 虚拟环境作为一个 Debian 包来发布。

Nuitka – 将脚本、模块、包编译成可执行文件或扩展模块。

py2app – 将 Python 脚本变为独立软件包(Mac OS X)。

py2exe – 将 Python 脚本变为独立软件包(Windows)。

pynsist – 一个用来创建 Windows 安装程序的工具,可以在安装程序中打包 Python本身。

构建工具

将源码编译成软件。

buildout – 一个构建系统,从多个组件来创建,组装和部署应用。

BitBake – 针对嵌入式 Linux 的类似 make 的构建工具。

fabricate – 对任何语言自动找到依赖关系的构建工具。

PlatformIO – 多平台命令行构建工具。

PyBuilder – 纯 Python 实现的持续化构建工具。

SCons – 软件构建工具。

交互式解析器

交互式 Python 解析器。

IPython – 功能丰富的工具,非常有效的使用交互式 Python。

bpython- 界面丰富的 Python 解析器。

ptpython – 高级交互式Python解析器, 构建于python-prompt-toolkit 之上。

文件

文件管理和 MIME(多用途的网际邮件扩充协议)类型检测。

imghdr – (Python 标准库)检测图片类型。

mimetypes – (Python 标准库)将文件名映射为 MIME 类型。

path.py – 对 os.path 进行封装的模块。

pathlib – (Python3.4+ 标准库)跨平台的、面向对象的路径操作库。

python-magic- 文件类型检测的第三方库 libmagic 的 Python 接口。

Unipath- 用面向对象的方式操作文件和目录

watchdog – 管理文件系统事件的 API 和 shell 工具

日期和时间

操作日期和时间的类库。

arrow- 更好的 Python 日期时间操作类库。

Chronyk – Python 3 的类库,用于解析手写格式的时间和日期。

dateutil – Python datetime 模块的扩展。

delorean- 解决 Python 中有关日期处理的棘手问题的库。

moment – 一个用来处理时间和日期的Python库。灵感来自于Moment.js。

PyTime – 一个简单易用的Python模块,用于通过字符串来操作日期/时间。

pytz – 现代以及历史版本的世界时区定义。将时区数据库引入Python。

when.py – 提供用户友好的函数来帮助用户进行常用的日期和时间操作。

文本处理

用于解析和操作文本的库。

通用

chardet – 字符编码检测器,兼容 Python2 和 Python3。

difflib – (Python 标准库)帮助我们进行差异化比较。

ftfy – 让Unicode文本更完整更连贯。

fuzzywuzzy – 模糊字符串匹配。

Levenshtein – 快速计算编辑距离以及字符串的相似度。

pangu.py – 在中日韩语字符和数字字母之间添加空格。

pyfiglet -figlet 的 Python实现。

shortuuid – 一个生成器库,用以生成简洁的,明白的,URL 安全的 UUID。

unidecode – Unicode 文本的 ASCII 转换形式 。

uniout – 打印可读的字符,而不是转义的字符串。

xpinyin – 一个用于把汉字转换为拼音的库。

python语言中的如何输入编号叫什么

Python 默认脚本文件都是 ANSCII 编码的,当文件 中有非 ANSCII 编码范围内的字符的时候就要使用"编码指示"来修正。 一个module的定义中,如果.py文件中包含中文字符(严格的说是含有非anscii字符),则需要在第一行或第二行指定编码声明:

# -*- coding=utf-8 -*-或者 #coding=utf-8 其他的编码如:gbk、gb2312也可以; 否则会出现类似:SyntaxError: Non-ASCII character '/xe4' in file ChineseTest.py on line 1, but no encoding declared; see for details这样的异常信息;n.org/peps/pep-0263.html

命令查看脚本默认的编码方式

import sys

sys.getdefaultencoding()

'ascii'

2.2 python中的编码与解码

先说一下python中的字符串类型,在python中有两种字符串类型,分别是str和unicode,他们都是basestring的派生类;str类型是一个包含Characters represent (at least) 8-bit bytes的序列;unicode的每个unit是一个unicode obj;所以:

len(u'中国')的值是2;len('ab')的值也是2;

在str的文档中有这样的一句话:The string data type is also used to represent arrays of bytes, e.g., to hold data read from a file. 也就是说在读取一个文件的内容,或者从网络上读取到内容时,保持的对象为str类型;如果想把一个str转换成特定编码类型,需要把str转为Unicode,然后从unicode转为特定的编码类型如:utf-8、gb2312等;

2.2.1 print 语句解释编码问题

print 是打印默认的编码方式,相当于对任何对象encode编码转化成str对象。默认是gbk的编码就是对Unicode进行自动的gbk编码,再按照gbk编码输出。

当print语句碰到一个unicode目标的时候,会用当前python shell环境的默认编码格式首先对unicode对象进行encode(此时unicode对象已经变成了一个str对象了),然后再以默认编码格式为基础,根据其包含的汉字和编码的对应规则,把这个str对象解释成中文并显示出来。但是当print语句碰到的直接是个str目标的时候,就不管其从unicode转到str时用的编码格式是什么,直接用默认编码格式的对应规则来解释成中文。所以,当unicode对象转换成str时的编码格式和print语句的默认编码格式不一致的时候就会出现乱码现象。比如在cmd的python shell里面:

复制代码

复制代码

证明Python 系统默认编码gbk

s= '你好'

s

'\xc4\xe3\xba\xc3'

s = u'你好'

s

u'\xc4\xe3\xba\xc3'

s = '你好'

s

'\xc4\xe3\xba\xc3'

print type(s)

type 'str'

unicode 编码打印错误,print 解析字符串而不是Unicode 编码

s = u'你好'

print s

ÄãºÃ

uni = u'你好' #存入一个unicode对象

print uni

你好 #可以正常显示 相当于Unicode.encode(gbk)

uni.encode("gbk")

'\xc4\xe3\xba\xc3' #显示的是个str对象了,如果type(uni.encode("gbk"))得到的就是str对象

print uni.encode("gbk")

你好 #可以正常显示,因为在cmd下的pythonshell里默认个编码格式就是gbk,gbk解析

uni.encode("utf-8")

'\xe4\xbd\xa0\xe5\xa5\xbd' #可以看到,encode用的编码格式不同,编成的字符串也是不同的

print uni.encode("utf-8")

浣犲ソ #乱码,因为用了gbk中汉字和字符串编码格式对应规则去解释了用utf-8编码成的字符串。解释的编码格式不对应。

#######さらに######

print '\xc4\xe3' #自己写出来的这么个字符串(前面不加r)的话也会被print解释成中文,按照编码格式输出

print uni.encode("utf-8").decode("gbk")

浣犲ソ

'''

乱码,而且和上面的乱码一样,这是因为,在uni被utf-8 encode之后,这个对象变成了str对象,是'\xe4\xbd\xa0\xe5\xa5\xbd' 这个。

后来,它又被按照gbk的规则解码,又变回了unicode,但是此时它在内存里的二进制数据已经和最初的uni不一样了。

最初的uni,应该是'\xc4\xe3\xba\xc3'.decode("gbk"),而现在的这个东西,他decode之前的字符串已经变过了。

这么一个东西再拿去print,又把它编码成了gbk格式,相当于前面那步decode没有做,变回了'\xe4\xbd\xa0\xe5\xa5\xbd'。

再解释成汉字,当然就和最开始用uni编码成utf-8格式再解释成汉字的乱码一样了

'''

复制代码

2.2.2 脚本print 打印的正确方式

上面已经证明了系统的默认编码方式是gbk,就是print 最后正确的编码方式应该是gbk

两种解决编码不匹配的情况:

一是明确的指示出 s 的编码方式

# -*- coding: utf-8 -*-

s = '中文'

s.decode('utf-8').encode('gb2312')

二是更改 sys.defaultencoding 为文件的编码方式

#! /usr/bin/env python

# -*- coding: utf-8 -*-

import sys

reload(sys) # Python2.5 初始化后会删除 sys.setdefaultencoding 这个方法,我们需要重新载入

sys.setdefaultencoding('utf-8')

str = '中文'

str.encode('gb2312')

三、实践经验中爬取数据的获得

复制代码

# -*- coding: utf-8 -*-

'''

#加油两个字可以很好的比较编码正确和错误

#### 错误的处理方式,

s = "中文"

print s

#这里print就不是输出gbk的编码,是按照头文件utf-8的格式输出

# 结果:中文

print s.decode('utf-8')

#结果中文,s进行解码称为Unicode,print打印就和系统print打印一样自动将Unicode进行

#解码,不用encode编码也能输出,但是最好转化成为字符串输出。

上面实例就是错误使用编码,错误使用编码会出现个别字体的乱码。

'''

'''

要点1、声明头文件# -*- coding: utf-8 -*- 说明所有的代码和中文是utf-8的编码方式

要点2、print输出函数输出到前台cmd中的默认系统编码方式是GBK,

要点3、尽量将Unicode转化成为字符串str (gbk或者utf-8),再去处理。

#unicode 转化成为字符串

s = u'加油'

print s

#结果:加油。原因:系统自动将Unicode升级gbk编码成为字符串,然后系统print 打印gbk

print s.encode('utf-8')

#结果:锷犳补。错误原因:Unicode 编码成为utf-8的字符串形式,但是print打印系统是gbk的,编码冲突。

print s.encode('gbk')

#结果:加油。原因:和print s等价,认为编码了gbk,系统打印

ss = "加油"

print ss

#结果:锷犳补。原因:ss为utf-8的字符串str,print 打印的对应编码字符串是gbk的,所以编码冲突。

print ss.decode('utf-8').encode('gbk')

#结果:加油。原因:ss首先从字符串编码utf-8解码成为unicode,然后进行编码gbk,等价使用print ss.decode('utf-8')。

'''

'''

3.1python中关于中文转换url编码的问题

爬虫的时候我们经常会碰到中文链接编码出现变换的问题,

例如'丽江'中文在url的地址编码却是'%E4%B8%BD%E6%B1%9F',

因此需 要做一个转换。这里我们就用到了模块urllib。

'''

import urllib

data = '丽江'

print data.decode('utf-8').encode('gbk')

#对utf-8的中文编码

print urllib.quote(data)

#那我们想转回去呢?

print urllib.unquote('%E4%B8%BD%E6%B1%9F').decode('utf-8').encode('gbk')

'''

'丽江'在网页编码是gbk的转换码是'%C0%F6%BD%AD',utf-8中的转化码是'%E4%B8%BD%E6%B1%9F',其实是编码问题。

百度的是gbk,其他的一般网站比如google就是utf8的。所以可以用下列语句实现。

'''

#江苏课题的编码转化

import sys,urllib

s = '江苏'

print urllib.quote(s.decode(sys.stdin.encoding).encode('gbk'))

print urllib.quote(s.decode(sys.stdin.encoding).encode('utf8'))

for place in ['南京','无锡','徐州','常州','苏州','盐城','南通','连云港','淮安','盐城','扬州']:

print urllib.quote(place)

####################

#结果:

'''

丽江

%E4%B8%BD%E6%B1%9F

丽江

%E4%B8%BD%E6%B1%9F

%E6%B6%93%E8%8A%A5%E7%9D%99

'''

Python 常用的标准库以及第三方库有哪些

参考:知乎

Python 常用的标准库以及第三方库

standard libs:

itertools

functools 学好python有必要掌握上面这两个库吧,

re 正则

subprocess 调用shell命令的神器

pdb 调试

traceback 调试

pprint 漂亮的输出

logging 日志

threading和multiprocessing 多线程

urllib/urllib2/httplib http库,httplib底层一点,推荐第三方的库requests

os/sys 系统,环境相关

Queue 队列

pickle/cPickle 序列化工具

hashlib md5, sha等hash算法

cvs

json/simplejson python的json库,据so上的讨论和benchmark,simplejson的性能要高于json

timeit 计算代码运行的时间等等

cProfile python性能测量模块

glob 类似与listfile,可以用来查找文件

atexit 有一个注册函数,可用于正好在脚本退出运行前执行一些代码

dis python 反汇编,当对某条语句不理解原理时,可以用dis.dis 函数来查看代码对应的python 解释器指令等等。

3th libs:

paramiko ssh python 库

selenium 浏览器自动化测试工具selenium的python 接口

lxml python 解析html,xml 的神器

mechanize Stateful programmatic web browsing

pycurl cURL library module for Python

Fabric Fabric is a Python (2.5 or higher) library and command-line tool for streamlining the use of SSH for application deployment or systems administration tasks.

xmltodict xml 转 dict,真心好用

urllib3 和 requests: 当然其实requests就够了 Requests: HTTP for Humans

flask web 微框架

ipdb 调试神器,同时推荐ipython!结合ipython使用

redis redis python接口

pymongo mongodbpython接口

PIL python图像处理

mako python模版引擎

numpy , scipy 科学计算

matplotlib 画图

scrapy 爬虫

django/tornado/web.py/web2py/uliweb/flask/twisted/bottle/cherrypy.等等 python web框架/服务器

sh 1.08 — sh v1.08 documentation 用来运行shell 模块的 极佳选择

python unicode编码

python unicode编码:

下面的代码创建了一个Unicode字符串,用UTF-8编码器将它编码,然后写入到一个文件中去,接着把数据从文件中读回来,解码成Unicode字符串对象,最后,打印出Unicode字符串,用以确认程序正确地运行。

在Linux中编写,在VIM中输入如下代码,保存为uniFile.py

# /home/xiaopeng/python/code/uniFile.py

'''

An example of reading and writing Unicode strings:Writes

a Unicode string to a file in utf-8 and reads it back in

'''

CODEC = 'utf-8' 编码方式

FILE = 'unicode.txt' 要存的文件名

hello_out = u"Hello world\n" 创建了一个Unicode格式的字符串

bytes_out = hello_out.encode(CODEC) 用UTF-8编码

f = open(FILE,'w')

f.write(bytes_out) 写入指定文件中

f.close()

f = open(FILE,'r')

bytes_in = f.read() 读取

f.close()

hello_in = bytes_in.decode(CODEC) 解码

print hello_in 打印

在终端中输入:python uniFile.py

结果打印出 Hello world

然后在python目录下会发现多了一个名为unicode.txt的文件,用cat命令查看一下,发现里面的内容和打印的结果一样.

把Unicode应用到实际中注意一下四点:

1 程序中出现字符串时一定要加一个前缀u

2 不要用str()函数,用Unicode()代替

3 不要用过时的string模块。如果传给它非ASCII码,它会把一切搞砸。

4 不到必须时不要在你的程序里编解码Unicode字符,只在你要写入文件或者数据库或者网络时,才调用encode()函数和decode()函数。

python中如何引入uniout

sudo是获取权限的,在linux中使用,windows你cmd直接pip install就可以了,权限不够也可以使用管理员打开,但是它实际上是因为特定的文件夹具有权限。


文章题目:python函数uni Python函数形参不需要声明类型
网页地址:http://www.cdkjz.cn/article/hhihsj.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220