一、内置模块的常用方法
__name__
__name__
的值默认是一个特别缺省"__main__"
- 如果 import 一个模块,那么模块name 的值通常为模块文件名
- 模块是对象,并且所有的模块都有一个内置属性
__name__
,一个模块的__name__
的值取决于您如何应用模块
__file__
- 如果程序用相对路径执行,
__file__
获得py脚本的相对路径
- 按绝对路径执行则得到的是绝对路径。
- 为了得到绝对路径,我们需要
os.path.realpath(__file__)
。
__doc__
- 模块本身是一个对象,而每个对象都会有一个doc属性。该属性用于描述该对象的作用
class MyClass:
'string.'
def printSay():
print 'say welcome to you.'
print MyClass.__doc__
print MyClass.printSay.__doc__
二、函数
def shopping(name,product): #这里name 和 tool 形参
print "%s want to buy %s" % (name,tool)
product= "mac"
print "====list====="
names = ['leo','jim','join','tom']
for name in names:
shopping(name,product)
print "=dict=="
shopdic = {'hong':'ipad',"leo":'mac'}
for k,v in shopdic.items():
shopping(k,v)
def say(words="Hello,World"):
print words
say("hello boy") #转入参数比默认值高,输出hello boy
say() #不传参数输出默认值
def say(a,b="hello b"): #有默认值的参数必须放在后面,需要赋值的参数放前面
print a,b
say("hello a")
def say():
name = "leoiceo"
name2 = "redhat"
return name,name2 #return 函数跳出
name,name2 = say()
print "%s is not %s" % (name,name2)
三、内置函数
#print help()
print dir() #当前作用域的变量值
print vars() #打印变量值和名字
#print type()
import temp
import temp
reload(temp) #重新加载模块
id([12])
#is
------------------
cmp(2,3) #比较两个数据大小
cmp(2,2)
cmp(2,1)
cmp(10,1)
abs() #绝对值
bool() #判断真假,有数据为真,空为假
divmod(10,1) #除取模 (商和余数)
max() #最大值 比较数值或者列表
min() #最小值
sum() #求和
pow(2, 11) #幂运算 2^11
------------------
len() #统计字符串长度
all() #全部为真才为真
any() #只要有一个为真就为真
------------------
chr() #返回整数i对应的ASCII字符。与ord()作用相反
ord() #返回整数i对应的ASCII字符。与chr()作用相反
hex() #12进制
oct() #8进制
bin() #6进制
------------------
print range(10)
print xrange(10)
for i in xrange(10): #迭代器
print i
for k,v in enumerate([1,2,3,4]):
print k,v
------------------
s= 'i am {0}'
print s.format('alex')
str(1)
------------------
def Function(arg):
print arg
print apply(Function,('aaaa')) #执行函数
print map(lambda x:x+1,[1,2,3]) #匿名函数
print filter(lambda x: x==1,[1,23,4]) #True序列
print reduce(lambda x,y:x+y,[1,2,3]) #累加
x = [1, 2, 3]
y = [4, 5, 6]
z = [4, 5, 6]
print zip(x, y,z)
------------------
#__import__()
#hasattr()
#delattr()
#getattr()
module = __import__('temp')
print dir(module)
val = hasattr(module, 'version')
print val
------------------
#callable()
#函数、类必须要有 __call__ 方法
#compile
#eval
com = compile('1+1','','eval')
print eval(com)
#exec语句
code = "for i in range(0, 10): print i"
cmpcode = compile(code, '', 'exec')
exec cmpcode
code = "print 1"
cmpcode = compile(code, '', 'single')
exec cmpcode
------------------
#isinstance()
#issubclass()
#super()
#staticmethod()
四、常用模块
import random
def generate_checkcode():
checkcode = ''
for i in range(4):
current = random.randint(0,4)
print current
print '----'
print i
if current != i:
temp = chr(random.randint(65,90))
else:
temp = random.randint(0,9)
checkcode += str(temp)
print checkcode
generate_checkcode()
import md5
hash = md5.new()
hash.update('redhat')
print hash.hexdigest()
import hashlib
hash = hashlib.md5()
hash.update('redhat')
print hash.hexdigest()
import re
s = "hello world"
a = re.match("h.*",s) #头开始匹配
b = re.search("e.*o",s) #搜索长匹配,匹配到最后一个值
c = re.findall("l.",s) #搜索所有匹配的值,直到找到最后一个相匹配的值
d = re.split("l.",s) #以匹配的值进行分隔
e = re.sub("l.","ww",s) #符合正规表达式的值替换为"ww"
ip = re.findall(r'\d+(?:\.\d+){3}',s) #匹配IP地址
\d 一个数字
\d+ 一个或者多个数字
.+ 一个或多个任意字符
* 一个或多个任意字符
? 0 or 1
\s space
\S 非空白
\w 字母或者数字 [0-9a-z]
import pickle
#内存数据保存到硬盘上
data = { "k1":123,'k2':456, 'k3':789}
with open("result.pkl",'wb') as fp:
#pickle.dump 将数据通过特殊的形式转换为只有python语言认识的字符串,并写入文件
pickle.dump(data,fp)
with open("result.pkl",'rb') as fp2:
#pickle.load 把python语言认识的字符串转加载成原有数据
name2 = pickle.load(fp2)
print name2
import time
#1、时间戳 1970年1月1日之后的秒
#3、元组 包含了:年、日、星期等... time.struct_time
#4、格式化的字符串 2014-11-11 11:11
print time.time()
print time.mktime(time.localtime())
print time.gmtime() #可加时间戳参数
print time.localtime() #可加时间戳参数
print time.strptime('2014-11-11', '%Y-%m-%d')
print time.strftime('%Y-%m-%d') #默认当前时间
print time.strftime('%Y-%m-%d',time.localtime()) #默认当前时间
print time.asctime()
print time.asctime(time.localtime())
print time.ctime(time.time())
import datetime
'''
datetime.date: 表示日期的类。常用的属性有year, month, day
datetime.time: 表示时间的类。常用的属性有hour, minute, second, microsecond
datetime.datetime: 表示日期时间
datetime.timedelta: 表示时间间隔,即两个时间点之间的长度
timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
strftime("%Y-%m-%d")
'''
import datetime
print datetime.datetime.now() 打印当前的时间
print datetime.datetime.now() - datetime.timedelta(days=5) 与今天间隔五天的日期
import sys
sys.argv 命令行参数List,第一个元素是程序本身路径
sys.exit(n) 退出程序,正常退出时exit(0)
sys.version 获取Python解释程序的版本信息
sys.maxint 最大的Int值
sys.maxunicode 最大的Unicode值
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称
sys.stdout.write('please:')
val = sys.stdin.readline()[:-1]
print val
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
os.curdir 返回当前目录: ('.')
os.pardir 获取当前目录的父目录字符串名:('..')
os.makedirs('dirname1/dirname2') 可生成多层递归目录
os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove() 删除一个文件
os.rename("oldname","newname") 重命名文件/目录
os.stat('path/filename') 获取文件/目录信息
os.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep 输出用于分割文件路径的字符串
os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system("bash command") 运行shell命令,直接显示
os.environ 获取系统环境变量
os.path.abspath(path) 返回path规范化的绝对路径
os.path.split(path) 将path分割成目录和文件名二元组返回
os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) 如果path是绝对路径,返回True
os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间