一.time
时间分为三种格式:
1.时间戳:从1970年到现在经过的秒数time.time()
作用:用于时间间隔计算
2.按照某种格式显示的时间形式:2020-03-30 11:11:11 time.strftime("%Y-%m-%d %H:%M:%S %p")
作用:用于展示时间 ("%Y-%m-%d %X")
3.结构化的时间:time.localtime()
作用:可以单独获取时间的某一部分
二 datetime:
类比time的第二种格式,datetime.datetime.now()
同时可以进行时间加减的操作datetime.datetime.now()+datetime.timedelta(参数)
需要掌握操作:
1.时间格式转换:结构化作为中间人可以转化时间戳和格式化时间,但剩余两者不能互转
local ---》时间戳
time.mktime()
local 《---时间戳
time.localtime(time.time())
世界标准时间:time.gmtime()东八区
time.strptime(时间,结构)转换成了结构化时间格式
了解:time.asctime()格式化的一种时间
datetime.datetime.utcnow()世界标准时间
datetime.datetime.fromtimestamp(时间戳)转换为格式化时间
二 random模块:random.random() #(0,1)大于0且小于1之间的小数
random.randint(1,3) #[1,3]大于等于1小于等于3之间的整数
random.randrange(1,3)#[0,3) 大于等于1小于3之间的整数
random.choice([xx,xxx,aaaa])列表内随机元素
random.sample([xx,xxx,aaaa],2)列表内元素任意两个的组合
random.uniform(1,3)大于1小于3的小数
random.shuffle([])打乱列表内容顺序 洗牌
随机验证码:
import random
def rad(n):
res = ""
for i in range(n):
res_pha = chr(random.randint(65,90))
res_num = str(random.randint(0,9))
res+=random.choice([res_num,res_pha])
return res
fun = rad(5)
print(fun)
三 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下为"
",Linux下为"
"
os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为:
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所指向的文件或者目录的最后修改时间
*os.path.getsize(path) 返回path的大小
推荐用这种
BASE_DIR=os.path.dirname(os.path.dirname(__file__))
在python3.5之后,推出了一个新的模块pathlib
from pathlib import Path
res = Path(__file__).parent.parent
print(res)
四sys模块: sys.argv 命令行参数List,第一个元素是程序本身路径
sys.exit(n) 退出程序,正常退出时exit(0)
sys.version 获取Python解释程序的版本信息
sys.maxint 最大的Int值
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称
五 shutil 模块
shutil.copyfileobj(open('old.xml','r'), open('new.xml', 'w')) 将文件内容拷贝到另一个文件中.
shutil.copyfile('f1.log', 'f2.log') #目标文件无需存在 拷贝文件
shutil.copymode('f1.log', 'f2.log') #目标文件必须存在 仅拷贝权限。内容、组、用户均不变
shutil.copystat('f1.log', 'f2.log') #目标文件必须存在 仅拷贝状态的信息,包括:mode bits, atime, mtime, flags
shutil.copy('f1.log', 'f2.log') 拷贝文件与权限
shutil.copytree('folder1', 'folder2', ignore=shutil.ignore_patterns('*.pyc', 'tmp*')) #目标目录不能存在,注意对folder2目录父级目录要有可写权限,ignore的意思是排除
shutil.rmtree('folder1') 递归的去删除文件
shutil.move(src, dst) 递归的去移动文件,它类似mv命令,其实就是重命名。
#将 /data 下的文件打包放置当前程序目录
import shutil
ret = shutil.make_archive("data_bak", 'gztar', root_dir='/data')
#将 /data下的文件打包放置 /tmp/目录
import shutil
ret = shutil.make_archive("/tmp/data_bak", 'gztar', root_dir='/data')
shutil 对压缩包的处理是调用 ZipFile 和 TarFile 两个模块来进行的