常见python标准库

time datetime 标准库
表示时间的三种方式

1.时间戳

1
2
3
import time
x =time.time()
print(x/3600/24/365)

1970+48 =2018
2.格式化的时间字符串
3.元组(struct_time)

1
2
import time
print(time.gmtime()) #utc时区

或者

1
print(time.localtime())#utc+8的时区

用这个方法取出年,也可以当你得到时间戳时在local time中写入用x.tm_year取出各类时间

1
2
3
import time
x = (time.localtime())
print(x.tm_year)

通过time.mktime(x)来得到时间戳

1
2
3
import time
x = (time.localtime())
print(time.mktime(x))

格式化输出时间使用time.strftime方法

1
2
3
4
5
6
7
import time
x = (time.localtime())
print(time.strftime("%Y-%m-%d %H:%M:%S",x))#前面格式后面时间元组形式
Time.asctime()=time.ctime
import time
x = (time.asctime())
print(x)


1
2
3
4
5
6
import time
x = (time.ctime())
print(x)
结果Thu Sep 20 23:46:03 2018
设置休眠时间
Time.sleep()

使用datetime 获取时间

1
2
3
import datetime
print(datetime.datetime.now())
2018-09-21 00:04:21.359480

使用datatime.timedelta()来使天数加3 或者在3中写hour=3加3小时hour=-3减三小时,分钟也是一样的

1
2
3
import datetime
print(datetime.datetime.now()+datetime.timedelta(3))
2018-09-24 00:07:39.745096

Import random 使用方法

1
2
import  random
print(random.random())

生成0-1之间的随机浮点数

1
2
import  random
print(random.randint(1,3))

随机生成一个1-3之间的int类型的数

1
2
import  random
print(random.randrange(1,3))

随机生成1-2之间的int类型的数

1
2
import  random
print(random.choice("hello"))

随机选择一个字符输出

1
2
import  random
print(random.choice(["1","2","p"]))

Choice也可选择列表和元组

1
2
import  random
print(random.sample("12356",2))

可以在里面随机选择两个随机数输出

1
2
import  random
print(random.uniform(1,3))

Uniform输出1-3之间的浮点数

1
2
3
4
import  random
p = [1,3,4,7]
random.shuffle(p)
print(p)

将集合里的数字随机打乱 (洗牌功能)

1
2
3
4
5
6
7
8
9
10
11
12
#  Author: Diedline
import random
checkcode = ""
for i in range (4):
currt = random.randrange(0,4)
if currt == i:
tmp =chr(random.randint(65,90)) #65-90对应字母的ascll码
else:
tmp = random.randint(0,9)
checkcode += str(tmp)

print(checkcode)

实现生成一个随机4位验证码的功能

import os 模块的使用

1
2
3
4
#  Author: Diedline
import os
print(os.getcwd())
os.getcwd() 获取当前路径
1
2
3
4
5
#  Author: Diedline
import os
print(os.getcwd())
os.chdir("C:\\Users\\Administrator\\PycharmProjects\\s14")
print(os.getcwd())

使用os.chdir来改变当前路径
或者可以通过前面加个r来使\不用转译即两个斜杠变一个

1
os.chdir(r"C:\Users\Administrator\PycharmProjects\s14\random__test")

1
2
3
4
#  Author: Diedline
import os
print(os.curdir) #上级目录 输出.
print(os.pardir) #上上级目录 输出..
1
2
import  os
os.mkdir(r"路径")

必须逐级建路径不然会报错

1
2
import  os
os.makedirs(r"路径")

可以用来构建目录

1
2
import  os
os.removedirs(r"路径")

用来递归逐级删除空目录

1
2
import  os
os.rmdir(r"路径")

可以删空目录,是一个个删除

列表形式来写出目录下所有文件

1
2
import  os
os.listdir(r"路径")

1
2
import  os
os.stat(r"路径")

返回路径文件的所有属性信息

1
2
import  os
print(os.sep)

输出当前操作系统指定的路径分隔符

1
2
import  os
print(os.linesep)

输出当前操作系统的终止符

1
2
import  os
print(os.environ)

查看你当前系统的环境变量

1
2
import  os
print(os.pathsep)

输出你当前操作系统分隔符

1
2
import  os
print(os.name)

输出当前的系统名 nt 表示windows

1
2
import  os
os.system("dir")

可以执行windows的命令例如dir ipconfig /all

1
2
import  os
os.path.abspath(r"用来获取绝对路径")

获取绝对路径

1
2
import  os
os.path.basename(r"路径")

返回路径的最后文件名,如果以分号结尾就返回空值

1
2
import os
os.path.dirname(r"路径")

输出目录

1
2
import os
os.path.exists(r"路径")

判断路径是否存在存在返回true 否则false

1
2
3

import os
os.path.isabs(r"路径")

判断是不是绝对路径

1
2
import os
os.path.isfile(r"路径")

判断是否是txt文件

1
2
import os
os.path.getatime("filename")

获取该文件的最后存储时间

1
2
import os
os.path.getmtime("filename")

获取该文件的最后修改时间

shutil模块

1
2
3
4
5
#  Author: Diedline
import shutil
f1 = open("123.txt",encoding="utf-8")
f2 = open("笔记2","w",encoding="utf-8")
shutil.copyfileobj(f1,f2)

文件的拷贝操作

1
2
3
#  Author: Diedline
import shutil
shutil.copyfile("123.txt","ppp")

文件的拷贝操作仅需一行代码

1
2
3
#  Author: Diedline
import shutil
shutil.copytree("123.txt","ppp")

递归的拷贝,一次能拷贝目录下所有文件

1
2
3
#  Author: Diedline
import shutil
shutil.rmtree("123.txt","ppp")

递归的删除一次性删除目录下所有文件

1
2
3
#  Author: Diedline
import shutil
shutil.move("123.txt","ppp")

移动文件

1
2
3
#  Author: Diedline
import shutil
shutil.make_archive("shutil_archive_test","zip",r'C:\Users\Administrator\PycharmProjects\s14\week4')

直接将文件打包压缩,压缩包名是第一个,第三个是文件路径

1
2
3
4
5
#  Author: Diedline
import zipfile
z = zipfile.ZipFile("shutil_archive_test.zip","w")
z.write('test1.py')
print('---------')

直接创建一个新的压缩包内涵你要写入的文件可以多次添加.write来增加文件数量

Shelve模块对数据进行存储

1
2
3
4
5
6
7
8
9
10
11
12
#  Author: Diedline
import shelve
import datetime
d = shelve.open("shelve_test")

name =["wch","hxd","jlf"]
info = {"www":"ppp","wch":"ssb"}
d["name"]= name
d["info"]= info
d["data"]= datetime.datetime.now()

d.close()

然后读取

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#  Author: Diedline
import shelve
import datetime
d = shelve.open("shelve_test")
print(d.get("info"))
print(d.get("name"))
print(d.get("data"))
# name =["wch","hxd","jlf"]
# info = {"www":"ppp","wch":"ssb"}
# d["name"]= name
# d["info"]= info
# d["data"]= datetime.datetime.now()

d.close()

用d.get 可以直接读取所存的信息

importlib库的功能:动态导入模块

动态导入模块方法1

1
2
3
4
5
6
7
#  Author: Diedline
mod = __import__("lib.aa")
"""
lib.aa 同一级目录下的文件夹名.文件名
"""
obj = mod.aa.c("huxudong") #进行实例化
print(obj.pri()) #调用内部方法

1
2
3
4
5
6
7
8
动态导入模块方法1(官方推荐)
# Author: Diedline
import importlib
data = importlib.import_module("lib.aa")
print(data.c("胡旭东").pri()) #初始化加调用pri()方法
"""
同样的效果官方推荐方式
"""