python常用的标准库模块

https://www.cnblogs.com/yuanchenqi/articles/5732581.html

源博客–Yuan先生

环境变量

# 临时添加环境变量
import sys
sys.path.append()

#如果需要永久修改
#去修改系统的环境变量


# __name__ 调用 __main__,如果是被调用则显示文件名
# __file__  文件名  pycharm 会变成绝对路径

# pycharm ,但是终端会报错
os.path.dirname(__file__) # 返回此文件所在目录,不包含文件名,所在目录
os.path.dirname(os.path.dirname(__file__)) # 所在目录的上层目录

# 终端
os.path.dirname(os.path.abspath(__file__)) # 返回此文件所在目录,不包含文件名,所在目录
os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 所在目录的上层目录

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     # 输出用于分割文件路径的字符串 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所指向的文件或者目录的最后修改时间

sys模块

"""
sys.argv           命令行参数List,第一个元素是程序本身路径
sys.exit(n)        退出程序,正常退出时exit(0)
sys.version        获取Python解释程序的版本信息
sys.maxint         最大的Int值
sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform       返回操作系统平台名称

"""

# 进度条
import sys,time
for i in range(10):
    sys.stdout.write('#') # 会有缓存
    time.sleep(1)
    sys.stdout.flush() #刷新缓存,会把缓存
# 终端打印##########,一秒一个。

json

import json
 
dic={'name':'alvin','age':23,'sex':'male'}
print(type(dic))#<class 'dict'>
 
j=json.dumps(dic)
print(type(j))#<class 'str'>
 
 
f=open('序列化对象','w')
f.write(j)  #-------------------等价于json.dump(dic,f)
f.close()
#-----------------------------反序列化<br>
import json
f=open('序列化对象')
data=json.loads(f.read())#  等价于data=json.load(f)


# ---------------------------------------------------------------------
import json
#dct="{'1':111}"#json 不认单引号
#dct=str({"1":111})#报错,因为生成的数据还是单引号:{'one': 1}
#json 字符串必须双引号

dct='{"1":"111"}'
print(json.loads(dct))

#conclusion:
#无论数据是怎样创建的,只要满足json格式,就可以json.loads出来,不一定非要dumps的数据才能loads


# dump dumps load loads
# dump(dic,f文件对象) 直接写入
# dump load 对于文件处理的简化操作

pickle

import pickle
 
dic={'name':'alvin','age':23,'sex':'male'}
 
print(type(dic))#<class 'dict'>
 
j=pickle.dumps(dic)
print(type(j))#<class 'bytes'>
 
 
f=open('序列化对象_pickle','wb')#注意是w是写入str,wb是写入bytes,j是'bytes'
f.write(j)  #-------------------等价于pickle.dump(dic,f)
 
f.close()
#-------------------------反序列化
import pickle
f=open('序列化对象_pickle','rb')
 
data=pickle.loads(f.read())#  等价于data=pickle.load(f)
 
 
print(data['age']) 

shelve

#shelve模块比pickle模块简单,只有一个open函数,返回类似字典的对象,可读可写;key必须为字符串,而值可以是python所支持的数据类型

import shelve
 
f = shelve.open(r'shelve.txt')
 
# f['stu1_info']={'name':'alex','age':'18'}
# f['stu2_info']={'name':'alvin','age':'20'}
# f['school_info']={'website':'oldboyedu.com','city':'beijing'}
#
#
# f.close()
 
print(f.get('stu_info')['age'])

猜你喜欢

转载自blog.csdn.net/sunt2018/article/details/85701167