常用模块
1、time模块
#_*_coding:utf-8_*_ import time import datetime print(time.clock()) #返回处理器时间,3.3开始已废弃 print(time.process_time()) #返回处理器时间,3.3开始已废弃 print(time.time()) #返回当前系统时间戳 print(time.ctime()) #输出Tue Jan 26 18:23:48 2016 ,当前系统时间 print(time.ctime(time.time()-86640)) #将时间戳转为字符串格式 print(time.gmtime(time.time()-86640)) #将时间戳转换成struct_time格式 print(time.localtime(time.time()-86640)) #将时间戳转换成struct_time格式,但返回 的本地时间 print(time.mktime(time.localtime())) #与time.localtime()功能相反,将struct_time格式转回成时间戳格式 #time.sleep(4) #sleep print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime()) ) #将struct_time格式转成指定的字符串格式 print(time.strptime("2016-01-28","%Y-%m-%d") ) #将字符串格式转换成struct_time格式
2、datetime模块
#datetime module print(datetime.date.today()) #输出格式 2016-01-26 print(datetime.date.fromtimestamp(time.time()-864400) ) #2016-01-16 将时间戳转成日期格式 current_time = datetime.datetime.now() # print(current_time) #输出2016-01-26 19:04:30.335935 print(current_time.timetuple()) #返回struct_time格式 #datetime.replace([year[, month[, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]]]]) print(current_time.replace(2014,9,12)) #输出2014-09-12 19:06:24.074900,返回当前时间,但指定的值将被替换 str_to_date = datetime.datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M") #将字符串转换成日期格式 new_date = datetime.datetime.now() + datetime.timedelta(days=10) #比现在加10天 new_date = datetime.datetime.now() + datetime.timedelta(days=-10) #比现在减10天 new_date = datetime.datetime.now() + datetime.timedelta(hours=-10) #比现在减10小时 new_date = datetime.datetime.now() + datetime.timedelta(seconds=120) #比现在+120s print(new_date)
3、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所指向的文件或者目录的最后修改时间
4、sys模块
sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxint 最大的Int值 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称 sys.stdout.write('please:') val = sys.stdin.readline()[:-1]
利用sys模块实现进度条功能:
import sys,time
def view_bar(num, total):
rate = num / total
rate_num = int(rate * 100)
r1 = '\r%s>%d%%' %("="*num, rate_num)
sys.stdout.write(r1)
sys.stdout.flush()
if __name__ == '__main__':
for i in range(0, 101):
time.sleep(0.1)
view_bar(i, 100)
5、hashlib模块
import hashlib obj = hashlib.md5(bytes('kajasdfasdfasdfasdfsadfasdfsadfshdfnasdkf', encoding='utf-8')) obj.update(bytes('123', encoding='utf-8')) result = obj.hexdigest() print(result)
6、random模块
mport random print random.random() print random.randint(1,2) print random.randrange(1,10)
实例:随机验证码
import
random
checkcode
=
''
for
i
in
range
(
4
):
current
=
random.randrange(
0
,
4
)
if
current !
=
i:
temp
=
chr
(random.randint(
65
,
90
))
else
:
temp
=
random.randint(
0
,
9
)
checkcode
+
=
str
(temp)
print
checkcode
7、re模块
re.meach('a','asda') 匹配asd中以a开头的 re.search('a','asda') 匹配包含asd中包含a meach search 只匹配到一个就返回 re.findall('a','asdasa') 以列表形式返回所有匹配的字符串 re.sub('a','s','adda',num) 字符串中用s替换a ,num表示几次 re.split('','',) print(re.split('\d+','one1two2three3four4')) ['one', 'two', 'three', 'four', ''] re.somplie() import re p = re.compile(r'\d+') print (p.findall('one1two2three3four4')) ['1', '2', '3', '4']
re详细使用方法见正则表达式
8、configparser模块
import configparser cf=configparser.configparser() cf.read("文件名") cf.sections() #获取模块名(以列表形式) cf.items("模块名") # 获取模块名下面的具体(所有)参数 例如:user=root cf.options('模块名') #获取模块名下面的具体(所有)参数 例如:user cf.get("模块名","模块名包含的参数 如:user") #获取模块下某个参数(user)的值 cf.set("模块名","参数,如:user","参数的值") #修改模块下某个参数(user)的 cf.remove_option("模块名","参数") #删除模块下某个参数 cf.remove_sections("模块名") #删除某个模块 cf.write(open("文件名","w")) *** 注意: 修改和删除需要重新写入到文件 才生效
9、zipFile tarFile模块
import zipfile # 压缩 z = zipfile.ZipFile('a1.zip', 'a') z.write('newnew.xml') z.write('xo.xml') z.close() # 解压 z = zipfile.ZipFile('laxi.zip', 'r') z.extractall() ---------------------------------- import tarfile # 压缩 tar = tarfile.open('your.tar','w') tar.add('s1.py', arcname='ssss.py') tar.add('s2.py', arcname='cmdb.py') tar.close() # 解压 tar = tarfile.open('your.tar','r') tar.extractall() # 可设置解压地址