码迷,mamicode.com
首页 > Web开发 > 详细

第三十五篇 os模块、sys模块、json模块、pickle模块

时间:2019-06-17 12:21:43      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:pickle   png   判断   version   格式   json   append   title   导入   

一、os模块

os模块和操作系统交互,主要用于文件操作

import os
# test.py文件中

# os.mkdir() 一个路径参数和一个字符串参数。如果有路径参数,则在该路径下创建一个新的文件夹;如果无路径参数,则在当前文件的同级路径下创建一个新的文件夹
os.mkdir('king')  # 创建了和test.py文件同级目录下的名为king的文件夹

# os.removedirs() 一个路径参数。递归往上移除空文件夹(无法移除.py的空文件)
os.removedirs(r'B:\pythontest\sys模块\kong\wenjianjia')

# os.rmdir() 一个路径参数。移除指定的空文件夹
os.rmdir(r'B:\pythontest\sys模块\kongwenjianjia')

# os.listdir()  一个路径参数。列出文件夹内的所有文件名和隐藏文件名(只打印该文件夹下的同级文件名,不会打印同级文件的下一级文件名)
res = os.listdir(r'B:\pythontest')  # 得到一个生成器
for s in res:
    print(s)
    
# os.remove()  一个路径参数。删除指定文件(无法删除文件夹)
os.remove(r'B:\pythontest\jsonandos\wenjian.py')

# os.environ 打印环境变量。environ相当于一个变量名,用于接收环境变量
print(os.environ)

# os.path.dirname(__file__)  获取当前文件的路径
os.path.dirname(__file__)
os.path.dirname(os.path.dirname(__file__))   # 获取当前文件的上一级文件的路径

# os.path.abspath()  一个路径参数。获取文件的绝对路径
os.path.abspath(__file__)  # 获取当前文件的绝对路径
os.path.abspath(r'B:\pythontest','king.py')  # 获取指定文件的绝对路径

# os.path.append() 一个路径参数。用于执行文件添加环境变量
os.path.append(r'B:\pythontest\aaa\m1.py')  # 将m1的查找路径添加到执行文件的环境变量中,可以用于导入模块m1中的函数

# os.path.exists() 一个路径参数。判断文件是否存在,存在返回True
bool_res = os.path.exists(r'B:\pythontest\aaa\m1.py')
print(bool_res)

# os.path.join()  两个路径参数。拼接文件路径
path_res = os.path.join(r'B:\pythontest','king.py')
print(path_res)  # B:\pythontest\king.py

# os.path.getsize()  一个路径参数。计算文件大小
file_size = os.path.getsize(r'B:\pythontest\6.10练习.py')
print(file_size)   # 1084

# os.walk()  一个路径参数。打印文件夹下所有文件夹和文件
ress = os.walk(r'B:\pythontest')   # 得到一个生成器
for st in ress:
    print(st)

二、sys模块

作用:与python解释器进行交互

import sys
# sys.argv[0]表示代码本身文件路径,当我们在cmd中使用它时,可以把它看成一个从程序外部获取参数的桥梁。当我们获得多个参数时,获得是一个列表。其实可以把sys.argv看作是一个列表,而我们可以通过索引取到想要的值
sys.argv[0]  # 表示代码所在的文件本身,也即是sys.argv的第一个值
sys.argv[1]  # 取第二个元素
sys.argv[0:]  # 取出所有元素

当我们用sys.argv[0:]时,如下图

技术图片

# sys.hexversion  获取解释器版本信息
print(sys.hexversion)

# sys.stdout  c语言写的。print就是用它写的
# sys.stdout.write()    

# sys.stdin      用c写的。input用它写的
# sys.stdin.read()    # 输入字符有限 
# sys.path
# sys.path.append()  一个路径参数。添加环境变量
sys.path.append(r'B:\pythontest\king.py')  # 在执行文件的搜索路径中添加路径

三、json模块

一般保存字典类型的数据

import json

1.序列化:将数据按规定格式,从内存写入到硬盘的过程

2.反序列化:将数据从硬盘读取到内存的过程

3.所有的语言都有json文件,json文件可用于跨平台/跨语言传输数据

dump和load

1.json文件保存,以字符串形式存入

# 字典、列表、字符串、bool、None、数字类型
dic = {'name':'king'}

with open('info.json','w',encoding='utf8') as fw:
    json.dump(dic,fw)

2.打开json文件,存之前是什么格式,取出来就是什么格式,一般存之前是字典,所以取出的多是字典形式的数据

with open('info.json','r',encoding='utf8') as fr:
    json.load(fr)

四、pickle模块

pickle模块支持python中的任意数据类型存成pickle文件,所以不能跨平台/跨语言(不同平台的函数一定是不同的),pickle模块序列化的过程是以二进制形式转化的

import pickle
def func():
    print('hello')
    
# 由于pickle传输的是二进制形式的数据,所以应该用b模式来读写
with open('func.pkl','wb') as fw:
    pickle.dump(func,fw)
    
# 读取文件
with open('func.pkl','rb') as fr:
    pickle.load(fr)

第三十五篇 os模块、sys模块、json模块、pickle模块

标签:pickle   png   判断   version   格式   json   append   title   导入   

原文地址:https://www.cnblogs.com/itboy-newking/p/11038871.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!