第四章常用模块

Posted 丫丫625202

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四章常用模块相关的知识,希望对你有一定的参考价值。

(一)、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 120449 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#
表示日期类,属性有yearmonthday
datetime.time#
表示时间类,常用属性有hourminutesecondmicrosecond
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:压缩包类型,ziptarbztargztar
#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只能序列化

 

 

以上是关于第四章常用模块的主要内容,如果未能解决你的问题,请参考以下文章

第四章常用模块

Python 常用模块学习

第四篇: Ansible 常用模块使用

如何使用模块化代码片段中的LeakCanary检测内存泄漏?

C#常用代码片段备忘

swift常用代码片段