python相减功能的函数_Python笔记第3章,模块和模块的常用方法,函数式编程yield,三元运算Lambda表达式,内置涵数,常用模块...

模块和模块的常用方法

函数式编程

yield

三元运算

Lambda表达式

内置涵数

常用模块

【模块和模块的常用方法】

至关重要的__init__.py    #包一定要有这个__init__.py文件,他才是包,这样才能通过form 包名

import 模块名(.py文件名)来去引用这个包的某个模块的某个函数功能

判断是否为主文件:__name__

if __name__ == '__main__'

当前文件路径: __file__

当前文件描述: __doc__

1)if __name__ ==

'__main__'

例子1:

在main的包下面,有着index模块

在file的包下面,有着demo模块cat index.py

#!/usr/bin/env python

#coding:utf-8

print __name__

python index.py

print __main__

cat demo.py

#!/usr/bin/env python

#coding:utf-8

print __name__

python demo.py

print __main__

例子2:

cat index.py

#!/usr/bin/env python

#coding:utf-8

from file import demo

print 'index',__name__

cat demo.py

#!/usr/bin/env python

#coding:utf-8

print 'demo',__name__

def Foo():

print "老狗去砍柴"

python index.py

demo,file.demo

index,__main__

总结:通过if __name__ ==

'__main__':

来判断当前这个.py脚本是不是主程序,如果是主程序就执行,好处就是当***来***的时候,来调用我的主程序他调用不上

2)当前文件路径: __file__

3)当前文件描述: __doc__

例子:[root@localhost opt]# pwd;ls

/opt/

test.py

cat

test.py

#!/usr/bin/env python

#coding:utf-8

'''

This is g

test

@author:wsyht

'''

4)print __file__   #查看当前文径路径

5)print __doc__    #查看模块(.py文件)的注释[root@localhost opt]# python test.py test.py

This is g test@author:wsyht

【函数式编程】

参数   def Fun(arg,*args,**kargs):

默认参数       print

arg

可变参数       print args

print kargs

返回值         return

'success'

1)默认参数和返回值示例

例子1:def foo(name):

print name,'去砍柴'

foo('wsyht')

foo('jenkins')

foo('peter')

例子2:def login(username):

if username == "wsyht":

return '登陆成功'

else:

return '登陆失败'

def detail(user):

print user,'验证成功'

if __name__ == '__main__':

user= raw_input('请输入用户名:')

res = login(user)  #检查用户是否登陆成功

if res == "登陆成功"

detail(user) #显示详细信息

else:

print "没奖金了"

例子3:def foo(name,action='砍柴',where=''):   设置默认值=砍柴,可以加多个默认参数,但默认参数的一定要放在最后面

print name,'去',action,where

foo('wsyht','砍柴')

foo('jenkins','吃饭')  #不设置第二个值,就会使用设置好的默认参数"砍柴"

foo('peter',where='上海')  #默认按位置传参,指定where='上海',就是可以不用按顺序传,给他的值就是上海,不管上面where的位置在哪

foo('jim',where='上海',action="oo")  #默认按位置传参,指定where='上海',就是可以不用按顺序传,给他的值就是上海,不管上面where的位置在哪

2)可变参数示例

例子4:#!/usr/bin/env Python

#coding:utf-8

'''

def show1(arg):

for item in arg:

print item

def show2(arg1,arg2):

print arg1,arg2

#show1(['Lyang','wsyht'])

show2('Liyang','zhangsan')

def show(*arg):   #加一个*你就可以加N个参数

for item in arg:

print item

show('wsyht','tom','peter','jenkins','jack')

'''

'''

def show(**kargs):

for item in kargs.items():

print item

show(name='wsyht',age='26')

'''

#以元组方式传进去

def show(**kargs):

for item in kargs.items():

print item

user_dict={'k1':123,'k2':456}

show(**user_dict)  #元组方式传进去前面要加两个*

【yield的使用】

代码示例1:#!/usr/bin/env python

#coding:utf-8

'''

print range(10)

print xrange(10)

for item in xrange(10): #便 利才生成数字

print item

'''

def foo():

yield 1    #eclipse上打上断点,debug测试

yield 2

yield 3

yield 4

yield 5

re = foo()

#print re  #调用的是生成器

for item in re:  #便利的时候才能使用re

print item

代码示例2:#!/usr/bin/env python

#coding:utf-8

def WsyhtReadlines():

seek = 0

while True:

with open('F:/wsyht.txt','r') as f:

f.seek(seek)

data = f.readline()  #读取一行

if data:

seek = f.tell()

yield data

else:

return #如果return了,那么整个函数将退出

#print WsyhtReadlines() #这样输出就是一个生成器

for item in WsyhtReadlines():

print item

'''

f = open('d:/temp.txt,'r')

f.read()

f.close()

with open('d:/temp.txt','r') as f:  #这样写就不需要再对文件close了

print 'xxxx'

print 'ok'

'''

【三元运算和Lambda表达式】

1)三元运算

代码实例:result = 'gt' if 1>3 else 'lt'

print result

例子:

#!/usr/bin/env python

#coding:utf-8

temp = None

if 1>3:

temp = 'gt'

else:

temp = 'lt'

print temp

#上面方法实现跟下面代码方法实现效果一样

result = 'gt' if 1>3 else 'lt'

print result

2)Lambda表达式

代码实例:a = lambda x,y:x+y

print a(4,10)

例子:#!/usr/bin/env pythondef foo(x,y):    return x+yprint

foo(16,10)

temp = lambda x,y:x+y

print temp(16,10)

'''temp = lambda x:x*x

print temp(4)''''''temp = lambda x,y,z:x+y+z

print temp(1,3,5)'''

其它示例:>>> [i*2 for i in range(10)] [0, 2, 4, 6, 8, 10, 12,

14, 16, 18]f>>> map(lambda x:x*2, range(10))[0, 2, 4, 6, 8, 10,

12, 14, 16, 18]>>> map(lambda x:x**x, range(10)) [1, 1, 4, 27,

256, 3125, 46656, 823543, 16777216, 387420489]>>>

【内置函数】

help()           #查看帮助

dir()

#把相应的key列出来,所有的内置函数

vars()

#列出所有key和Values,所有的内置函数

type()           #查看类型

import temp

#导入模块

reload(temp)     #重复导入模块

id()             #查看内存地址

#help,dir(),vars(),type()演示>>> a = []

#它是一个类,调用一个类来创建类表

>>> a1 = list()

>>> help(a)

#查看帮助

>>> print dir()    #把相应的key列出来,所有的内置函数

>>> print

vars()   #列出所有key和Values,所有的内置函数

>>> print type(a)

#查看类型

>>> print type(a1) #查看类型

#reload(demo)演示

#file包下有一个demo.py模块文件

#main包下有一个index.py文件#cat demo.py

#!/usr/bin/env python

#coding:utf-8

print 'demo.py'

#python index.py

#python index.py

#!/usr/bin/env python

#coding:utf-8

from file import demo  #当导入的时候就会执行一篇demo模块里面的所有代码

#from file import demo #Python下再用重复的代码导入相同的模块是不会导入的,他只导入一次

#如果想导两次,就要用reload(demo)

from file import demo

reload(demo)

#id演示,查看所占用的内存空间>>> t1=123

>>>

t2=888

>>> print id(t1)

28244048

>>> print

id(t2)

28560048

cmp()    判断前后值大小,前大-1,后大1,同大0

abs()    求觉对值

bool()

0为False,其它为True

divmod() 求商取余

man()    求最大值

min()  求最小值

sum()

求和

pow()  求次方>>> cmp(2,3)   #后面大负1

-1

>>>

cmp(5,3)   #前面大正1

1

>>> cmp(5,5)   #等大出零

0

>>>

print abs(-9)   #求觉对值

9

>>> print bool(0)

#求布尔值

False

>>> print bool(1)

True

>>> print

bool(15)

True

>>> print bool(-3)

True

>>> print

divmod(9,4)  #求商取余

(2, 1)

>>> print divmod(14,4)

(3,

2)

>>> print divmod(15,3)

(5, 0)

>>> print

max([11,22,33,333])  #求最大值

333

>>> print min([11,22,33,333])

#求最小值

11

>>> print sum([11,22,33])    #求和

66

>>>

print pow(2,3)

#2的3次方

8

all() 一假则假,全真才真

any() 一真则真,全假才假>>> print all([1,2,3,0])

#一假则假

False

>>> print all([1,2,3,1])

#全真则真

True

>>> print any([0,0,0,0])

#全假则假

False

>>> print any([1,0,0,0])

#一真则真

True

>>> print any([1,2,3,1])

True

>>> print

bool('')

False

>>> print bool(None)

False

chr() ASCALL码对应的字符   #必须记住

ord() ASCALL码对应的数字   #必须记住

hex() 十六进制转换

oct()

八进制转换

bin() 二进制转换>>> print chr(65)

#ASCALL码对应的字符

A

>>> print chr(66)

B

>>> print

chr(67)

C

>>> print chr(68)

D

>>> print chr(69)

E

>>> print ord('A')   #ASCALL码对应的数字

65

>>> print

ord('B')

66

>>> print hex(2000)

#十六进制转换

0x7d0

>>> print oct(2000)

#八进制转换

03720

>>> print bin(2)

#二进制转换

0b10

enumerate()  加序列号     #必须记住

format()     格式化输出>>> li = ['手表','汽车','房']

>>> for item in li:print item

...

手表

汽车

>>> for item in enumerate(li):print item

#enumerate是加序列号

...

(0, '\xe6\x89\x8b\xe8\xa1\xa8')

(1,

'\xe6\xb1\xbd\xe8\xbd\xa6')

(2, '\xe6\x88\xbf')

>>> for item in

enumerate(li,1):print item   #括号第二个参数是指起始值

...

(1,

'\xe6\x89\x8b\xe8\xa1\xa8')

(2, '\xe6\xb1\xbd\xe8\xbd\xa6')

(3,

'\xe6\x88\xbf')

>>> for item in enumerate(li,3):print item

...

(3, '\xe6\x89\x8b\xe8\xa1\xa8')

(4, '\xe6\xb1\xbd\xe8\xbd\xa6')

(5,

'\xe6\x88\xbf')

>>> for item in enumerate(li,1):print

item[0],item[1]

...

1 手表

2 汽车

3 房

>>> s='My Name {0}

{1}'

>>> print s.format('is','wsyht')

My Name is

wsyht

>>> s='My Name {0},{1}'

>>> print

s.format('is','wsyht')

My Name

is,wsyht

#调用函数的两种方法def function(arg): print arg

function('wsyht')    #第一种调用方法

apply(function,('wsyht'))  #执行函数,第二种调用方法,这种应用不广泛,知道就好

#map的使用,所有数进行相加,相减,相乘等>>> print map(lambda x:x+1,[1,2,3])

#all[2, 3, 4]

>>> li = [11,22,33]    #第一种方法>>>

temp=[]>>> for item in li:temp.append(item + 100)...

>>> print temp[111, 122, 133]

>>> def foo(arg):return arg + 100    #第二种方法... >>>

li = [11,22,33]>>> temp=[]>>> for item in

li:temp.append(foo(item))... >>> print temp[111, 122,

133]

>>> def foo(arg):return arg + 100   #使用map的方法...

>>> li = [11,22,33]>>> temp =

map(foo,li)>>> print temp[111, 122, 133]

>>> li = [11,22,33]>>> temp = map(lambda

arg:arg+100,li)   #最简单的map方法把他便利出来>>> print temp[111, 122,

133]

#filter的使用,过滤条件,只有是True序列的,才会对他进行相加,相减操作#!/usr/bin/env

python

#coding:utf-8

li = [2,5,11,22,33]

def foo(arg):

if

arg<22:

return True

else:

return False

temp =

filter(foo,li)

print

temp

#reduce的使用,累加,累乘操作>>> li=[2,5,7]

>>> print

reduce(lambda x,y:x+y,li)   #最少要有两个变量x,y

14

>>> print

reduce(lambda

x,y:x*y,li)

70

#zip的使用,把他们的列表的每一列拼接成一组打印出来>>> x = [1,2,3]

>>> y =

[4,5,6]

>>> z = [7,8,9]

>>> q = [1,3,5]

>>>

print zip(x,y,z,q)

[(1, 4, 7, 1), (2, 5, 8, 3), (3, 6, 9, 5)]

>>>

q = [1,3,5]

>>> x = [2,4,6]

>>> z = [2,4]

>>> print zip(q,x,z)

[(1, 2, 2), (3, 4,

4)]

#eval的使用>>> a = '8*8'

>>> print

a

8*8

>>> print eval(a)

64

#反射,__import__()的使用,通过字符串的形式去导入模块,并以字符串的形式执行函数

附加知识:

getattr()

#获取模块的函数数

hasattr()  #判断模块有没有这个函数

delattr()  #删除这个模块的某个函数

#查看帮助

#import os

#help(os)

演示1:通过字符串的形式去导入模块>>> temp = 'sys'

>>> model =

__import__(temp)

>>> print model.path

['',

'/usr/local/python2.7/lib/python27.zip', '/usr/local/python2.7/lib/python2.7',

'/usr/local/python2.7/lib/python2.7/plat-linux2',

'/usr/local/python2.7/lib/python2.7/lib-tk',

'/usr/local/python2.7/lib/python2.7/lib-old',

'/usr/local/python2.7/lib/python2.7/lib-dynload',

'/usr/local/python2.7/lib/python2.7/site-packages']

#演示2:

main包下有三个模块,index.py ,mysqlserver.py,sqlserver.pycat

mysqlserver.py

#!/usr/bin/env python

def count():

return 2cat sqlserver

#!/usr/bin/env python

def count():

return 2

#index.py例子1,通过字符串的形式去导入模块#!/usr/bin/env python

'''

import mysqlserver

print mysqlserver.count()

import sqlserver

print sqlserver.count()

'''

temp = 'mysqlserver'   #动态切换模块,模块下执行的方法一样,当一个宕掉了,可以快速切换,比上述方法方便快速

model = __import__(temp)

model.count()

#index.py例子2,cat index.py

temp = 'mysqlserver'  #模块名字

func = 'count'  #函数名字

model = __import__(temp)   #以字符串的形式导入模块

function = getattr(model,func)   #获取model模块找func函数

print function() #以字符串的形式执行函数

#val = hasattr(model,'version') #判断model模块里有没有version这个函数

#print val

#dels = delattr(model,'count') #删除model模块里的count函数

#print dels

#用在开发大型程序,随时可以切换数据库的场景下

【常用模块】

1)random模块

#random生成验证码,生成数字>>> import random

>>> print random.random()   #0到1之间

0.455011787105

>>> print random.random()

0.0645256529981

>>> print random.random()

0.881869685668

>>> print random.randint(1,5)   #生成1到5包括1和5

5

>>> print random.randint(1,5)

1

>>> print random.randint(1,5)

3

>>> print random.randint(1,5)

1

>>> print random.randint(1,5)

5

>>> print random.randint(1,5)

1

>>> print random.randint(1,5)

4

>>> print random.randint(1,5)

2

>>> print random.randrange(1,3)     #生成1,2但小于3的数

2

>>> print random.randrange(1,3)

2

>>> print random.randrange(1,3)

2

>>> print random.randrange(1,3)

2

>>> print random.randrange(1,3)

2

>>> print random.randrange(1,3)

2

>>> print random.randrange(1,3)

2

>>> print random.randrange(1,3)

1

>>> print random.randrange(1,3)

1

#生成字母>>> temp = random.randint(65,90)

>>> print chr(temp)

#验证码案例:#!/usr/bin/env python

#coding:utf-8

import random

code = []

for i in range(6):

if i == random.randint(0,5):

code.append(str(random.randint(0,5)))

else:

temp = random.randint(65,90)

code.append(chr(temp))

print ''.join(code)

2)hashlib模块

#md5加密>>> import hashlib

>>> hash = hashlib.md5()   #创建一个md5()对像,

>>> hash.update('admin')   #对像里有一个update函数,把admin通过md5加密

>>> hash.hexdigest()       #输出十六进制数

'21232f297a57a5a743894a0e4a801fc3'

>>> hash.digest()

'!#/)zW\xa5\xa7C\x89J\x0eJ\x80\x1f\xc3'

3)序列化和json

pickle序列化:可以把一个对像或一个列表或一个字典通过Python特有的机制序列化,还可以反序列化

特殊二进制的方式加密一下,>>>import pickle

>>>li = ['wsyht',11,22,'ok','yes']

>>>dumpsed = pickle.dumps(li)  #序列化

>>>print dumpsed

>>>print type(dumpsed)   #查看类型已经序列化成字符串

>>>loadsed = pickle.loads(dumpsed) #反序列化

>>>print loadsed

>>>print type(loadsed)  #查看类型又反序列化成了列表

#!/usr/bin/env python

import pickle

li = ['wsyht',11,22,'ok','yes']

pickle.dump(li,open('f:/temp.txt','w')) #序列化到文件

应用场景:在Python和Python之间文件传输的时候给他序列化,内存之间数据交互

pickle和json的区别

pickle只能在Python中用

json是所有的语言都支持的数据接口格式,java和python想在内存之间做数据交互就要用json否则用pickle即可

pickle所有数据类型都可以序列化,

json他只能去序列化常规的数据类型>>> import json

>>> name_dic = {'name':'wsyht','age':23}

>>> json.dumps(name_dic)

'{"age": 23, "name": "wsyht"}'

>>> serialized_obj = json.dumps(name_dic)

>>> json.loads(serialized_obj)

{u'age': 23, u'name': u'wsyht'}

>>> import pickle

>>> pickle.dumps(name_dic)

"(dp0\nS'age'\np1\nI23\nsS'name'\np2\nS'wsyht'\np3\ns."

#pickle序列化之后看不清里面的内容

#json序列化之后可以看清里面的内容

4)os模块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所指向的文件或者目录的最后修改时间

5)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

6)re模块

compile

match search findall

group groups

正则表达式常用格式:

字符:\d \w \t  .

次数:* + ? {m} {m,n}

示例:#!#/usr/bin/env python

#coding:utf-8

import re

result1 = re.match('\d+', '1afsfweasfcxvsfd123')  #在你给的字符串起始位置去匹配,\d从数字开始找,+表示一个到多个

if result1:   #当result1等于True的时候,就是匹配,如果匹配就输出里面的内容

print result1.group()  #用group方法把他匹配的内容输出出来

else:

print 'nothing'

result2 = re.search('\d+', 'alsfj3af') #在整个内容里面去匹配,\d从数字开始找,+表示一个到多个

if result2:

print result2.group()    #用group方法把他匹配的内容输出出来

result3 = re.findall('\d+', 'asfaf11sf22lj33') #只要匹配全都拿出来

print result3

com = re.compile('\d+')

print com.findall('asfaf11sf22lj33')

result5 = re.search('(\d+)\w*(\d+)','aasflsjfa12aaljsf22lj13bb')

print result5.group()   #所有匹配内容输出

print result5.groups()  #只把括号\d,也就是组里面的内容输出

result6 = re.search('a{3,5}','aaaaaa') #匹配3到5次的aaaaa输出出来

print result6.group()

总结:

match:只在第一个字符串开始找,如果没有匹配,则不再继续找,如果第一个字符串中有,则只输出第一个

searh: 在所有内容里找,直到找到为止,但只输出找到的第一个

findall:把所有找到的匹配的内容,都通过列表的形式打印出来

compile: 编译之后再去匹配,这样可以加快匹配的速度

group: 把他匹配的内容输出出来

groups:分组

匹配的字符:

\d:表示数字的意思

\w: 代表下划线,字母,数字

\t:制表符,除了回车以外的所有字符

匹配的次数:

* 大于等于0,0到多个

+ 大于等于1,1个到多个

?  0或1

{m} 次数,如a{6},出现6次a的进行匹配

{m,n} 如a{3,7} 出现3到7次的就进行匹配

例子1:

法1>>> ip = '12.23.84.dsfa.23s.3234~lsjfw+23sfaf192.168.32.43_w342d~@#9436'

>>> import re

>>> re.findall('[0-9]{1,3}',ip)

['12', '23', '84', '23', '323', '4', '23', '192', '168', '32', '43', '342', '943', '6']

>>> re.findall('[0-9]{1,3}\.[0-9]{1,3}',ip)

['12.23', '192.168', '32.43']

>>> re.findall('[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}',ip)

['12.23.84', '192.168.32']

>>> re.findall('[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}',ip)

['192.168.32.43']

法2:>>> re.findall('(\d+)',ip)

['12', '23', '84', '23', '3234', '23', '192', '168', '32', '43', '342', '9436']

>>> re.findall('(\.+\d+){1,3}',ip)

['.84', '.23', '.3234', '.43']

>>> re.findall('(?:\.+\d+){1,3}',ip)    #?:表示匹配括号的那一组数据,必须连着

['.23.84', '.23', '.3234', '.168.32.43']

>>> re.findall('[0-9]{1,3}(?:\.+\d+){3}',ip)

['192.168.32.43']

法3:>>> re.findall('(?:\d+\.+){3}\d{1,3}',ip)

['192.168.32.43']

法4:>>> re.findall('(?:\d{1,3}\.){3}\d{1,3}',ip)

['192.168.32.43']

7)time模块

三种表示主式:

1、时间戳 1970年1月1日后的秒

2、元组包含了:年、日、星期等...time.struct_time

3、格式化的字符串 2014-11-11 11:11 print time.time()

#时间戳形式存在print time.time()

print time.mktime(time.localtime())  #print (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 time

>>> print time.time()

1469014348.5   #秒,时间戳的方式

>>> print time.gmtime()

time.struct_time(tm_year=2016, tm_mon=7, tm_mday=20, tm_hour=11, tm_min=25, tm_sec=53, tm_wday=2, tm_yday=202, tm_isdst=0)

>>> print time.strftime('%Y-%m-%d %H:%M:%S')

2016-07-20 19:36:16

8)datetime模块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)

9)shutil模块

windows系统下使用的模块import shutil

shutil.copyfile('f:/temp.txt', 'f:/os.txt') #复制文件

shutil.copytree('f:/temp', 'f:/os')  #复制目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值