自学python一段时间,之前总是学习基本语法,对Python标准库没怎么接触,所以计划从常用的标准库开始,大体了解一遍,下面是学习过程中的笔记。
一、OS模块
主要对目录、或者文件操作。常用方法如下:
os.listdir(path) ,path 要获得内容目录的路径,列表形式列出目录 下所有目录和文件 名
os.mkdir(path) ,path 要创建目录的路径
os.rmdir(path) ,path 要删除的目录的路径(os.rmdir(path) ,path 要删除的目录的路径)
os.name 返回操作系统类型 返回值是"posix"代表 linux,"nt"代 表 windows
os.getcwd() 获取当前路径
os.makedirs(path [, mode=0777]) 递归创建目录
os.remove(path) 移除文件
os.rename(old, new) 重命名文件或目录
os.system(command) 执行 shell 命令, 不能存储结果
os.path 类用于获取文件属性
os.path.basename(path) 返回最后一个文件 或目录名
os.path.dirname(path) 返回最后一个文件 前面目录
os.path.abspath(path) 返回一个绝对路径
os.path.isdir(path) 判断是否是目录
os.path.isfile(path) 判断是否是文件
栗子1:
获得目录中的内容,创建目录,删除目录
#!/usr/bin/python
# -*-coding:utf-8-*-
import os
# 如何获得目录中的内容
path = 'D:\workspace\pyTest'
def getdirlist():
a = os.listdir(path)
print a
print len(a)
getdirlist()
b = os.listdir(os.getcwd())
print os.getcwd()
print b
print len(b)
# 创建目录
os.mkdir(path + "\\temp")
getdirlist()
# 删除目录
os.rmdir(path + "\\temp")
getdirlist()
运行结果:
栗子2:
import os
print os.name
# 获取当前路径
os.getcwd()
path = 'D:\workspace\pyTest'
os.mkdir(path + "\\test")
# 递归创建目录
os.makedirs(path + "\\test0\\test1\\test2")
# 移除文件
os.remove(path + "\\123.txt")
# 重命名文件或目录
os.rename(path + "\\123.txt", path + "\\1234.txt")
# 执行 shell 命令, 不能存储结果
command = ''
os.system(command)
# os.path 类用于获取文件属性
# 返回最后一个文件 或目录名
print os.path.basename(path) # pyTest
# 判断是否是目录
print os.path.isdir(path) # True
# 判断是否是文件
print os.path.isfile(path) # False
二、sys模块
python sys模块包含了与python解释器和它的环境有关的函数,这个你可以通过dir(sys)来查看他里面的方法和成员属性
import sys
print dir(sys)
result:
复制代码代码如下:
['__displayhook__', '__doc__', '__excepthook__', '__name__', '__package__', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_current_frames', '_getframe', '_mercurial', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dllhandle', 'dont_write_bytecode', 'exc_clear', 'exc_info', 'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'float_repr_style', 'getcheckinterval', 'getdefaultencoding', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'gettrace', 'getwindowsversion', 'hexversion', 'long_info', 'maxint', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'py3kwarning', 'setcheckinterval', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'subversion', 'version', 'version_info', 'warnoptions', 'winver']
sys.argv命令行参数
#!/usr/bin/python
# -*-coding:utf-8-*-
import sys
print sys.argv[0]
print sys.argv[1]
print sys.argv[2]
print sys.argv[3]
print sys.argv # argv 既然是一个列表,那么可以通过 len()函数获取这个列表的长度从而知道输入的参数数量
print len(sys.argv)
print len(sys.argv[1:])
运行结果:
注意:sys.argv是一个列表,列表sys.argv[0]是文件名,平时统计参数个数时,记得-1,len(sys.argv[1:])。
sys.path模块搜索路径
sys.path
输出的是一个列表,里面包含了当前 Python 解释器所能找到的模块目录。
如果想指定自己的模块目录,可以直接追加 sys.path.append(path)
sys.platform系统平台标识符
sys.platform
系统 平台标识符:
Linux linux
Windows win32
Windows/Cygwin cygwin
Mac OS X darwin
sys.subversion解释器版本
sys.subversion
Python 解释器有几种版本实现,而默认解释器是 CPython:
('CPython', '', '')
sys.version查看python版本
sys.version
sys.exit()退出解释
代码执行过程中,到 sys.exit()就会终止程序
三、math 数字处理
import math
# 返回圆周率
print math.pi
# 返回X浮动的上限
print math.ceil(5.2)
# 返回X浮动的下限
print math.floor(5.2)
# 将数字截尾取整
print math.trunc(5.2)
# 返回X的绝对值
print math.fabs(-5.2)
# 返回 x%y(取余)
print math.fmod(5, 2)
# 返回 x 小数和整数
print math.modf(5.2)
# 返回 x 的阶乘
print math.factorial(5)
# 返回X的y次方
print math.pow(2, 3)
print 2 ** 3
# 返回X的平方根
print math.sqrt(5)
运行结果:
四、random生成随机数
import random
# 用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b
print random.randint(1, 10)
# 用于生成一个0到1的随机符点数: 0 <= n < 1.0
print random.random()
# 返回整数范围的随机数,并且可设置step
print random.randrange(1, 10, 3)
# random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列
print random.sample([1, 2, 3, 4, 5], 3)
五、json
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,一般API返回的数据大多数是JOSN、XML,如返回的是JSON,将JSON数据转换成字典,方便在程序中处理。
JSON库常用的有两种方法:dumps()和loads()
dumps是将dict转化成str格式
loads是将str转化成dict格式。
import json
a = {'name': 'wang', 'age': '20'}
print type(a)
b = json.dumps(a)
print b, type(b)
c = json.loads(b)
print c, type(c)
运行结果:
<type 'dict'>
{"age": "20", "name": "wang"} <type 'str'>
{u'age': u'20', u'name': u'wang'} <type 'dict'>