os模块、sys模块、json模块、subprocess模块

今日学习内容总结

os模块

      os模块提供了多数操作系统的功能接口函数。当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件、目录打交道,这时就离不了os模块。

os模块常用指令

      1.创建目录

  import os

  os.mkdir(r'a')  # 使用相对路径 在当前执行文件所在的路径下创建一个a文件夹
  os.mkdir(r'b/c')  # mkdir只能创建单级目录
  os.makedirs(r'c')  # makedirs可以创建单级目录
  os.makedirs(r'b/c/d')  # makedirs支持创建多级目录

      2.删除目录

  import os

  os.rmdir(r'a')  # 可以删除单级目录
  os.rmdir(r'b')  # 只能删空的单级目录
  os.removedirs(r'c')  # 可以删除单级目录
  os.removedirs(r'C:\Users\Administrator\Desktop\Typora\day15\day15\b\c\d')  # 删除目录之后如果外层的目录也是空的则继续删除

      3.查看文件名称

  import os

  print(os.listdir())  # 查看当前路径下的文件名
  print(os.listdir(r''))  # 查看指定路径下所有的文件和目录名

      4.删除,重命名文件

  import os

  os.remove(r'a.txt')  # 删除指定文件
  os.rename(r'a.txt', r'b.txt')  # 重命名指定文件

      5.获取路径,切换路径

  import os

  print(os.getcwd())  # 获取当前目录所在路径
  os.chdir(r'/xiazai')  # 切换到指定路径
  print(os.getcwd())  # 打印当前所在路径

      6.软件开发目录规范,启动脚本兼容性操作

  import os

  os.path.dirname(__file__)  # 动态获取当前执行文件所在的绝对路径
  print(os.path.dirname(__file__))  # D:\PycharmProjects\test
  os.path.dirname(os.path.dirname(__file__))  # 每嵌套一层就是往上切换一层
  print(os.path.abspath(__file__))  # 动态获取当前执行文件自身的路径 D:\PycharmProjects\test\test1.py

      7.判断文件是否存在

  import os

  print(os.path.exists(r'test1.py'))  # True  判断所给的路径是否存在
  print(os.path.exists(r'xiazai'))  # False
  print(os.path.isdir(r'D:\PycharmProjects\test'))  # True  判断路径是否是一个文件夹
  print(os.path.isdir(r'main.py'))  # False  判断路径是否是一个文件夹
  print(os.path.isfile(r'test.py'))  # False  判断路径是否是一个文件
  print(os.path.isfile(r'test1.py'))  # True  判断路径是否是一个文件

      8.路径拼接

  import os

  a = 'test3'
  b = 'work'

  print(a + '/' + b)  # test3/work  路径分隔符在不同的系统下是不一样的  使用加号的话兼容性极差
  res = os.path.join(a, b)  # 能够自动识别当前操作系统的分隔符
  print(res)  # test3\work

      9.获取文件大小

  import os

  print(os.path.getsize(r'main.py'))  # 544bytes
  print(os.path.getsize(r'a.txt'))  # 21bytes

sys模块

      sys模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数。它始终可用。sys模块包括了一组非常实用的服务,内含很多函数方法和变量,用来处理Python运行时配置以及资源,从而可以与前当程序之外的系统环境交互,如:python解释器。

      常用方法:

  
  import sys
  # 列举当前执行文件所在的sys
  print(sys.path)

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

  # 获取平台信息
  print(sys.platform)  # win32

  # 自定义命令行操作
  print(sys.argv)  # ['D:/PycharmProjects/test/test1.py']
  

      cmd终端可以使用windows+r并输入cmd唤起,也可以在pycharm直接使用快捷方式Terminal,模拟cmd并自动切换到当前执行文件所在的路径下。

json模块

      json是一种轻量级的数据交换格式,主要用于跨语言传输数据。同时也易于机器解析和生成。也就是说,Json是用来进行语言之间的数据交换的,它可以在任意语言之间进行。Pyhton中的json源自于JavaScript。

      jason格式数据本质属于字符串类型。

      双引号是json格式数据独有的标志符号:

  import json
  
  a = {'username':'jason','pwd':666}
  print(a, type(a))  # {'username': 'jason', 'pwd': 666} <class 'dict'>
  res = json.dumps(a)
  print(res, type(res))  # {"username": "jason", "pwd": 666} <class 'str'>
  print(str(a),type(str(a)))  # {'username': 'jason', 'pwd': 666} <class 'str'>
  # 不难看出,将a转换成json数据结构后,内容为字符串,并且是双引号的形式。

      简单数据类型处理。

      json模块可以直接处理简单数据类型。json.dumps()方法返回一个str对象,编码过程中会存在从python原始类型向json类型的转化过程,具体的转化对照如下:

python json
dict object
list, tuple array
str, unicode string
int, long, float number
True true
False false
None null

      json.dumps()是把python对象转换成json对象的一个过程,生成的是字符串。而json.loads()就是将json格式字符串转换成对应的数据类型:

  import json

  a = {'username': 'jason', 'pwd': 666}
  res = json.dumps(a)
  e_str = res.encode('utf8')

  j_str = e_str.decode('utf8')
  print(j_str, type(j_str))  # {"username": "jason", "pwd": 666} <class 'str'>

  res1 = json.loads(j_str)
  print(res1, type(res1))  # {'username': 'jason', 'pwd': 666} <class 'dict'>

pickle模块

      因为它不支持跨语言传输 只能识别python代码

subprocess模块

      这个模块可以实现远程操作其他计算机的功能,动态获取命令执行并返回结果。

  import subprocess

  # ls在终端的意思就是查看当前路径下所有的文件名称
  res = subprocess.Popen('ls',
                         shell=True,
                         stdout=subprocess.PIPE,
                         stderr=subprocess.PIPE
                         )
  print('stdout',res.stdout.read().decode('utf8'))  # 获取正确命令执行之后的结果
  print('stderr',res.stderr.read().decode('utf8'))  # 获取错误命令执行之后的结果
posted @ 2022-03-30 20:18  くうはくの白  阅读(69)  评论(0)    收藏  举报