码迷,mamicode.com
首页 > 编程语言 > 详细

python模块

时间:2016-06-12 00:32:31      阅读:283      评论:0      收藏:0      [点我收藏+]

标签:python

查看pytho中已自带的模块

显示出已导入的模块

import sys

sys.modules

显示全部模块

help()

modules

查看某模块中支持的功能

eg:

dir(‘os‘)

查看某模块的功能的用法

eg:

help(os.mkdir)


1、模块__future__

至少确保在2.1之前版本的Python可以正常运行一些新的语言特性


2、模块re

Python通过re模块提供对正则表达式的支持。使用re的一般步骤是先使用re.compile()函数,将正则表达式的字符串形式编译为Pattern实例,然后使用Pattern实例处理文本并获得匹配结果(一个Match实例),最后使用Match实例获得信息,进行其他的操作。

举一个简单的例子,在寻找一个字符串中所有的英文字符:

import re
pattern = re.compile(‘[a-zA-Z]‘)
result = pattern.findall(‘as3SiOPdj#@23awe‘)
print result
# [‘a‘, ‘s‘, ‘S‘, ‘i‘, ‘O‘, ‘P‘, ‘d‘, ‘j‘, ‘a‘, ‘w‘, ‘e‘]

3、模块shlex
在Python中,可以shlex.split()分割字符串,只保留双引号?例如,如果输入的是"hello, world" is what ‘i say‘那么输出将是["hello, world", "is", "what", "‘i", "say‘"]。


4.format

格式化(format())输出字符串

print(‘{0} is {1} years old. ‘.format(name, age)) #输出参数  


5、startswith

Python startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。

语法:

startswith()方法语法:

    str.startswith(str,beg=0,end=len(string));

  • 参数:

  • str -- 检测的字符串。

  • strbeg -- 可选参数用于设置字符串检测的起始位置。

  • strend -- 可选参数用于设置字符串检测的结束位置。


6、open

   os.open(file,flags[,mode]);


‘r‘ : 以只读模式打开

‘r+‘ : 以读写模式打开, 写的指针刚开始指在文件开头, 因此会覆写文件

‘w‘ : 清空文件, 不能使用 <file>.read*() 方法.  (read(), readline(), readlines())

‘w+‘ : 清空文件, 可以使用 <file>.read*() 方法. 

‘a‘ : 向一个文件追加内容,  不能使用 .read*()

‘a+‘ : 向一个文件追加内容, 可以使用 .read*()

‘rU‘ : 自动探测行尾符, 如果以这种模式打开一个文件, 该文件对象将获得一个 newlines 属性, 当还未读到任何行尾时, <file>.newlines 属性等于 None, 读到了则可能是‘\n‘, ‘\r\n‘, ‘\r‘ 中的一种. 


7、path

os.path模块主要用于文件的属性获取


1).os.path.abspath(path) 
返回path规范化的绝对路径。 

2).os.path.split(path) 
将path分割成目录和文件名二元组返回。 
 
3).os.path.dirname(path) 
返回path的目录。其实就是os.path.split(path)的第一个元素。 
 
4).os.path.basename(path) 
返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素。 
 

#!/usr/bin/python

import os

path=os.path.realpath(__file__)

dirname=os.path.dirname(path)

basename=os.path.basename(path)

splitext=os.path.splitext(basename)[0]

split=os.path.split(path)

print  path

print dirname

print basename

print splitext

print split

==========================

/root/bin/pya.py

/root/bin

pya.py

pya

(‘/root/bin‘, ‘pya.py‘)


5).os.path.commonprefix(list) 
返回list中,所有path共有的最长的路径。 
如: 
>>> os.path.commonprefix([‘/home/td‘,‘/home/td/ff‘,‘/home/td/fff‘]) 
‘/home/td‘ 
 
6).os.path.exists(path) 
如果path存在,返回True;如果path不存在,返回False。 
 
7).os.path.isabs(path) 
如果path是绝对路径,返回True。 
 
8).os.path.isfile(path) 
如果path是一个存在的文件,返回True。否则返回False。 

9).os.path.isdir(path) 
如果path是一个存在的目录,则返回True。否则返回False。 
 
10).os.path.join(path1[, path2[, ...]]) 
将多个路径组合后返回,第一个绝对路径之前的参数将被忽略。 
 
11).os.path.normcase(path) 
在Linux和Mac平台上,该函数会原样返回path,在windows平台上会将路径中所有字符转换为小写,并将所有斜杠转换为饭斜杠。 
 
>>> os.path.normcase(‘c:/windows\\system32\\‘) 
‘c:\\windows\\system32\\‘ 
 
12).os.path.normpath(path) 
规范化路径。 
 
>>> os.path.normpath(‘c://windows\\System32\\../Temp/‘) 
‘c:\\windows\\Temp‘ 
 
13).os.path.splitdrive(path) 
返回(drivername,fpath)元组 
 
>>> os.path.splitdrive(‘c:\\windows‘) 
(‘c:‘, ‘\\windows‘) 
 
14).os.path.splitext(path) 
分离文件名与扩展名;默认返回(fname,fextension)元组,可做分片操作 
 
>>> os.path.splitext(‘c:\\csv\\test.csv‘) 
(‘c:\\csv\\test‘, ‘.csv‘) 
 
15).os.path.getsize(path) 
返回path的文件的大小(字节)。 
 
>>> os.path.getsize(‘c:\\boot.ini‘) 
299L 
 
16.os.path.getatime(path) 
返回path所指向的文件或者目录的最后存取时间。 
 
17).os.path.getmtime(path) 
返回path所指向的文件或者目录的最后修改时间


18).os.path.sep:路径分隔符      linux下就用这个了’/’


8、isinstance

isinstance(object, classinfo)

isinstance(object, class-or-type-or-tuple)

如果参数object是classinfo的实例,或者object是classinfo类的子类的一个实例, 返回True。如果object不是一个给定类型的的对象, 则返回结果总是False

>>> isinstance(1, int)

True

>>> isinstance(1.0, float)

True


9、json

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。

对简单数据类型的encoding 和 decoding

使用简单的json.dumps方法对简单数据类型进行编码,例如:


import json
 
obj = [[1,2,3],123,123.123,‘abc‘,{‘key1‘:(1,2,3),‘key2‘:(4,5,6)}]
encodedjson = json.dumps(obj)
print repr(obj)
print encodedjson

输出:

[[1, 2, 3], 123, 123.123, ‘abc‘, {‘key2‘: (4, 5, 6), ‘key1‘: (1, 2, 3)}] 
[[1, 2, 3], 123, 123.123, "abc", {"key2": [4, 5, 6], "key1": [1, 2, 3]}]

通过输出的结果可以看出,简单类型通过encode之后跟其原始的repr()输出结果非常相似,但是有些数据类型进行了改变,例如上例中的元组则转换为了列表。在json的编码过程中,会存在从python原始类型向json类型的转化过程,具体的转化对照如下:

技术分享
json.dumps()方法返回了一个str对象encodedjson,我们接下来在对encodedjson进行decode,得到原始数据,需要使用的json.loads()函数:

decodejson = json.loads(encodedjson)
print type(decodejson)
print decodejson[4][‘key1‘]
print decodejson

输出:

<type ‘list‘> 
[1, 2, 3]

[[1, 2, 3], 123, 123.123, u‘abc‘, {u‘key2‘: [4, 5, 6], u‘key1‘: [1, 2, 3]}]

loads方法返回了原始的对象,但是仍然发生了一些数据类型的转化。比如,上例中‘abc’转化为了unicode类型。从json到python的类型转化对照如下:

技术分享

json.dumps方法提供了很多好用的参数可供选择,比较常用的有sort_keys(对dict对象进行排序,我们知道默认dict是无序存放的),separators,indent等参数。

排序功能使得存储的数据更加有利于观察,也使得对json输出的对象进行比较,例如:

data1 = {‘b‘:789,‘c‘:456,‘a‘:123}
data2 = {‘a‘:123,‘b‘:789,‘c‘:456}
d1 = json.dumps(data1,sort_keys=True)
d2 = json.dumps(data2)
d3 = json.dumps(data2,sort_keys=True)
print d1
print d2
print d3
print d1==d2
print d1==d3

输出:

{"a": 123, "b": 789, "c": 456} 
{"a": 123, "c": 456, "b": 789} 
{"a": 123, "b": 789, "c": 456} 
False 
True


10、yaml

YAML是一种直观的能够被电脑识别的的数据序列化格式,容易被人类阅读,并且容易和脚本语言交互 

cat test.yaml

    name: Tom Smith

    age: 37

    spouse: 

        name: Jane Smith

        age: 25

    children:

        - name: Jimmy Smith

          age: 15

        - name1: Jenny Smith

          age: 12


 impopt yaml

 f=open(‘test.yaml‘,r)

 x=yaml.load(f)

 print x


{‘age‘: 37, ‘spouse‘: {‘age‘: 25, ‘name‘: ‘Jane Smith‘}, ‘name‘: ‘Tom Smith‘, ‘children‘: [{‘age‘: 15, ‘name‘: ‘Jimmy Smith‘}, {‘age1‘: 12, ‘name1‘: ‘Jenny Smith‘}]}


11、Popen的方法:

Popen.poll() 
用于检查子进程是否已经结束。设置并返回returncode属性。

Popen.wait() 
等待子进程结束。设置并返回returncode属性。

Popen.communicate(input=None)
与子进程进行交互。向stdin发送数据,或从stdout和stderr中读取数据。可选参数input指定发送到子进程的参数。 Communicate()返回一个元组:(stdoutdata, stderrdata)。注意:如果希望通过进程的stdin向其发送数据,在创建Popen对象的时候,参数stdin必须被设置为PIPE。同样,如 果希望从stdout和stderr获取数据,必须将stdout和stderr设置为PIPE。

例如:


[python] view plain copy print?

    p = Popen("cp -rf a/* b/", shell=True, stdout=PIPE, stderr=PIPE)  

    p.wait()  

    if p.returncode != 0:  

        print "Error."  

         return -1  


python模块

标签:python

原文地址:http://leyin01.blog.51cto.com/9062123/1787944

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!