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

目录

  • 一、os模块
  • 二、sys模块
  • 三、json模块
    • dump和load
  • 四、pickle模块

一、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)

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

时间: 2024-10-10 04:30:07

第三十五篇 os模块、sys模块、json模块、pickle模块的相关文章

mysql 第三十五篇文章~xtarbackup增量备份以及策略

一 简介: 今天咱们来探讨下增量备份的策略 二 背景: 随着数据量的日益增长,全备已经不现实了,所以探讨并测试了增量备份策略 三 具体策略: 1  一周为界限,一天做全备,其他时间以全备为基础进行增量备份 2  一周为界限,进行打包,然后上传到备份服务器 四 具体脚本: 第一部分 参数变量初始化 #!/bin/bash #config xingqi=`date +%w` DATE=`date +%Y%m%d%H` DATEyst=`date +"%Y%m%d%H" -d "-

第三十五篇-AppBarLayout的使用

效果图: 添加appbarlayout到xml文件中,然后在toolbar下面添加一个imageview并设置居中放置,我放置的是上面那个安卓的图标. 根据之前学过的toolbar那一节,结合viewpaper和toolbar设置三个页面,这时,运行程序,可能发现那三个页面并没有显示出来,NetedScollView这是个可滚动的页面,单击它,在右侧勾选fillViewport.在运行程序就可以显示页面了. page1 page2 page3 附上代码 main.java package com

C++第三十五篇 -- 写第一个驱动开发程序

VS2017+WDK+VMware12+Win10环境配置完毕,接下来写第一个驱动程序. 1.新建一个KMDF的程序. 2.配置项目属性. 3.编译项目.一般这里应该成功,我一台电脑成功了,另一台电脑失败了.两台电脑OS的版本不同,一个1803(失败),一个1809(成功).失败的信息如下: 做法: 好像不管用,上google搜索了下,修改平台集V141,也不管用.最后,看到一个说安装WDK1809的.PS:有问题的是VS2017+WDK1803.VS2017+WDK1809是正常的.不过正常编

小刘同学的第一百三十五篇日记

今天大致把论文改完了. 还剩一章的内容,明早大概2个小时就能改完整片论文了. 今天收到录用通知了-- 感觉很殇--可能要去小县城上班去了. 而且也不是做技术-- 不知道后面的路会怎么样, 牢记使命,不忘初心吧( ̄▽ ̄)~* 大家早安~ morning~ 原文地址:https://www.cnblogs.com/xiaoliutongxue/p/9022457.html

我的第三十五篇博客---flask-wtf表单验证

在Flask中,为了处理web表单,我们可以使用Flask-WTF扩展,它封装了WTForms,并且它有验证表单数据的功能WTForms支持的HTML标准字段 字段对象 说明StringField 文本字段TextAreaField 多行文本字段PasswordField 密码文本字段HiddenField 隐藏文件字段DateField 文本字段,值为datetime.date文本格式DateTimeField 文本字段,值为datetime.datetime文本格式IntegerField

【转】JMeter学习(三十五)使用jmeter来发送json/gzip格式数据

一.使用jmeter来发送gzip数据 有时候我们需要模拟在客户端将数据压缩后, 发送(post)到服务器端. 通常这种情况,会发生在移动终端上. 这样做的好处, 是可以节省流量.  当然, 服务器返回的数据也可以是gzip格式, 终端在数据展现时,需要先解压缩. 同样也是为了节省网络流量. 1. 首先我们把要post的数据, 保存在文本文件里,然后gzip压缩. (可以使用linux中的gzip命令) 2. 在jmeter的http sample里, 使用"同时发送文件数据"的方式,

第十五篇 Integration Services:SSIS参数

本篇文章是Integration Services系列的第十五篇,详细内容请参考原文. 简介在前一篇,我们使用SSDT-BI将第一个SSIS项目My_First_SSIS_Project升级/转换到SSIS 2012.在这一篇,我们将探讨SSIS变量的姊妹:SSIS参数.我们将展示参数配置,通过包参数管理动态属性值,以及在SSIS包执行期间参数是如何配置和使用的.首先在SSDT-BI打开转换过的My_First_SSIS_Project,如图15.1所示:图15.1My_First_SSIS_P

python-时间模块,random、os、sys、shutil、json和pickle模块

一.time与datetime模块 time模块: 时间戳:表示的是从1970年1月1日00:00:00开始按秒计算的偏移量,返回类型为float类型 格式化时间字符串(Format String) 结构化的时间(struct_time):struct_time元组共有9个元素(年月日时分秒,一年中的第几周,一年中的第几天,夏令时) # print(time.time())#1533962144.060534 # print(time.localtime())#time.struct_time(

秒杀多线程第十五篇 关键段,事件,互斥量,信号量的“遗弃”问题

版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 秒杀多线程第十五篇 关键段,事件,互斥量,信号量的“遗弃”问题 在<秒杀多线程第九篇 经典线程同步总结 关键段 事件 互斥量 信号量>中对经典多线程同步互斥问题进行了回顾和总结,这篇文章对Windows系统下常用的线程同步互斥机制——关键段.事件.互斥量.信号量进行了总结.有网友问到互斥量能处理“遗弃”问题,事件和信号量是否也能处理“遗弃”问题.因此本文将对事件和信号量作个试验,看看事件和信号量能否处理“遗弃”问题. 一.