(一)、os模块
os.getcwd()#python解释器路径
os.listdir(‘E:\Code‘)#查看指定目录下的文件
os.removedirs()#删除多个目录
os.remove()#删除文件
#判断是否为文件
os.path.isfile()
#判断是否为目录
os.path.isdir()
#判断是否为绝对路径
print(os.path.isabs(‘E:\Code‘))
#判断是否文件或目录存在
print(os.path.exists(‘E:\Code‘))
#分割文件名和路径
print(os.path.split(‘E:\Code\PyCharm\Luf\Chapter04\my_os.py‘))
#分割文件后缀
print(os.path.splitext(‘E:\Code\PyCharm\Luf\Chapter04\my_os.py‘))
#分割文件或目录所在磁盘
print(os.path.splitdrive(‘E:\Code\PyCharm\Luf\Chapter04\my_os.py‘))
#获取文件所在目录
print(os.path.dirname(‘E:\Code\PyCharm\Luf\Chapter04\my_os.py‘))
#获取绝对路径名
print(os.path.abspath(‘E:\Code\PyCharm\Luf\Chapter04\my_os.py‘))
#获取文件名
print(os.path.basename(‘E:\Code\PyCharm\Luf\Chapter04\my_os.py‘))
#运行shell命令,返回0为执行正确,非0表示执行错误
os.system()
#读取环境变量为HOME的值
os.getenv(‘HOME‘)
#获取操作系统所有环境变量
os.environ
#设置系统环境变量,有则返回,无则创建,只在当前terminal下有效,即当前程序
os.environ.setdefault(‘HOME‘,‘/home/ya‘)
#当前平台使用的行终止符
os.linesep
#获取当前系统平台
os.name
#重命名
os.rename(‘old‘,‘new‘)
#创建多级目录
os.makedirs(‘C:\python\os\mkdirs‘)
#创建单个目录
os.mkdir()
#获取文件属性
os.stat(‘E:\Code\PyCharm\Luf\Chapter04\my_os.py‘)
#修改文件权限与时间戳
os.chmod(‘E:\Code\PyCharm\Luf\Chapter04\my_os.py‘,777)
#获取文件大小
os.path.getsize()
#结合目录名与文件名
os.path.join()
#改变工作目录
os.chdir()
#获取当前终端大小
os.get_terminal_size()
#终止当前进程,py3已无改方法
os.exit()
#杀死进程
os.kill()
(二)、sys模块
#接收参数,传参数给脚本
sys.argv()
#退出程序,
sys.exit(0)
#python版本
sys.version
#int最大值
sys.maxsize()
#python模块搜索路径
sys.path()
#当前系统版本
sys.pltform()
#标准输出
sys.stdout()
#标准输入
sys.stdin.readline()[:-1]
#获取递归最大层数
sys.getrecursionlimit()
#设置递归最大层数
sys.setrecursionlimit(120)
#获取解释器默认编码
sys.getdefaultencoding()
#获取内存数据存到文件里的默认编码
sys.getfilesystemencoding()
(三)、time模块
local_time=time.localtime()#获取当前本地时间(北京时间)
# local_time.tm_year 年
# local_time.tm_mon 月
# local_time.tm_mday 日
# local_time.tm_hour 时
# local_time.tm_min 分
# local_time.tm_sec 秒
# local_time.tm_wday weekday
# local_time.tm_yday 一年中的第几天
# local_time.tm_isdst 是否为夏时令
time.time()#获取当前时间戳
time.gmtime()#类似localtime,将是一个时间戳转换为UTC时区
time.mktime(t)#将一个struct_time转换为时间戳
time.sleep()#将线程推迟指定时间,单位为秒
time.asctime()#把一个表示时间的元组或者struct_time表示为‘Sun Oct 1 12:04:49 2017‘格式,没有参数则将time.localtime()传入
time.ctime()#把一个时间戳转换为time.asctime()形式,如果参数未给或为None时,将time.time()作为参数,先当于time.asctime(time.localtime(sec))
time.strftime()#把一个表示时间的元组或者struct_time转化为格式化的时间字符串,未指定则将time.localtime()传入
time.strptime()#把一个格式化时间字符串转换为struct_time,即将strftime()逆操作
(四)、datetime模块
import datetime
"""
datetime.date#表示日期类,属性有year、month、day
datetime.time#表示时间类,常用属性有hour、minute、second、microsecond
datetime.datetime#表示日期时间
datetime.timedelta#表示时间间隔
datetime.tzinfo#与时区有关信息
d=datetime.datetime.now()#返回当前的datetime日期类型
d.timestamp()
d.today()
d.year
d.timetuple()
datetime.date.fromtimestamp()#把一个时间戳转换为datetime日期类型
"""
#时间替换
d=datetime.datetime.now()
print(d)
d=d.replace(year=2017)
print(d)
(五)、random模块
import random
random.randint(1,100)#取x,y之间的随机数,包含起始值
random.randrange(1,100)#取x,y之间的随机数,不包含起始值
random.random()#随机浮点数
random.choice(‘aaabbccc‘)#从字符串中返回随机字符
random.sample(‘aaaa‘,3)#从字符串中返回指定数量的字符
random.shuffle("123456abc")#打乱字符串
#生成随机字符串
import string
‘‘.join(random.sample(string.ascii_lowercase+string.digits+string.punctuation,16))
(六)、shutil模块
import shutil
#将文件对象内容拷贝到另一个文件对象中
f1=open(‘my_os.py‘,‘rb‘)
f2=open(‘my_os_new.py‘,‘wb‘)
shutil.copyfileobj(f1,f2)
f1.close()
f2.close()
#拷贝文件
shutil.copyfile()
#仅拷贝权限,内容和组都不变
shutil.copymode()
#拷贝状态信息,包括mode bits,atime,mtime,flags
shutil.copystat()
#拷贝文件和权限
shutil.copy()
#拷贝文件和状态信息
shutil.copy2()
#拷贝文件目录
shutil.copytree()
#拷贝指定类型文件
# shutil.ignore_patterns(‘*.pyc‘)忽略的文件,有则报错
shutil.copytree(‘s‘,‘d‘,shutil.ignore_patterns(‘*.pyc‘))
#删除目录,ignore_errors忽略错误
shutil.rmtree(‘path‘,ignore_errors=True)
#递归式移动,重命名,剪切
shutil.move()
#压缩打包
shutil.make_archive()
#base_name:压缩包的文件名,也可以是路径,只是文件名则保存到当前目录,否则保存到指定路径
#format:压缩包类型,zip,tar,bztar,gztar
#root_dir:要压缩的文件夹路径,默认为当前目录
#owner:用户,默认当前用户
#group:组,默认为当前组
#logger:用于记录日志,通常为logging.Logger对象
#解压
shutil.unpack_archive()
#filename:解压的文件名
#extract_dir:解压到指定路径
#format:压缩包格式
import zipfile
z=zipfile.ZipFile("test.zip",‘w‘)
z.write(‘test.py‘)
z.write(‘my_shutil.py‘)
z.close()
(七)、序列化模块
把内存中的数据通过网络共享给别人
把内存中的数据存入硬盘
1、json只能序列化str,int,tuple,list,dict。跨平台,跨语言
定义了不同语言之间的交互规则,数据简洁
import json
#序列化,可dump多次,但数据会损坏
json.dump(obj=None,fp=‘fileobj‘)#变成字符串并存入到文件对象
json.dumps(obj=None)#将对象变成字符串赋值给变量,即存入内存。可写入硬盘或可通过网络发送。可以跨平台跨语言共享数据
#反序列化,只能load一次
json.load()#从文件对象中加载数据
json.loads()#将字符串转换成相应类型
2、pickle支持python里所有数据类型,只能在python中使用
import pickle
pickle.dump(data,file_obj)#二进制模式写入文件
pickle.dumps()#转换成二进制数据
pickle.load()#从pkl文件中加载成对象
pickle.loads()
json只能序列化