os模块

os模块主要是与操作系统打交道。

导入os模块

import os

创建单层文件夹,路径必须要存在

os.mkdir(路径/文件夹名)
"""不写路径就是在当前目录创建文件夹"""

创建多层文件夹,路径不存在会自动创建文件夹

os.makedirs(路径/文件夹名/文件夹名...)
"""不写路径就是在当前目录创建文件夹"""

删除一层空的文件夹

os.rmdir(路径/文件夹名)
"""不写路径就是在当前目录删除文件夹"""

删除多层空文件夹,删除一层文件夹后,如果上一级的文件夹是空的,会一直删除上一级文件夹直到文件夹不为空

os.removedirs(路径/文件夹名)
"""不写路径就是在当前目录删除文件夹"""

查看某个路径下所有的文件名称

os.listdir(路径)
"""不写路径就是在当前目录"""

删除文件(无法删除文件夹)

os.remove(文件名)
"""不写路径就是在当前目录"""

重命名文件(无法重命名文件夹)

os.rename(文件名,新文件名)
"""不写路径就是在当前目录"""

返回当前路径

os.getcwd()

改变当前路径

os.chdir(路径)

返回当前执行文件所在的绝对路径

os.path.dirname(__file__)  # 固定搭配
# 每嵌套一层就会往上一层路径
os.path.dirname(os.path.dirname(__file__))

返回当前执行文件自身的路径

os.path.abspath(__file__)  # 固定搭配

判断文件是否存在(可以判断文件夹和文件)

os.path.exists(路径)

判断路径是否是一个文件夹

os.path.isdir(路径)

判断路径是否是一个文件

os.path.isfile(路径)

拼接成路径

os.path.join(路径1, 路径2)
"""路径2最好不要用绝对路径"""

返回文件大小(单位:字节),如果路径是文件夹,返回值为0

os.path.getsize(路径)

判断路径是否是一个文件夹

os.path.isdir(路径)

在cmd窗口执行括号内的命令,直接显示

os.system(命令)
# 如
os.system('dir') # 获取当前目录信息

在cmd窗口执行括号内的命令,获取执行结果

os.popen(命令).read()

把执行文件与所在路径分开存储在元组中

os.path.split(__file__)  # 固定搭配

文件时间问题

os.path.getatime(path)  # 返回path所指向的文件或者目录的最后访问时间
os.path.getmtime(path) # 返回path所指向的文件或者目录的最后修改时间

sys模块

sys模块主要是跟python解释器打交道

导入模块

import sys

以列表形式返回当前执行文件所在的sys.path

sys.path

自定义命令行操作

sys.argv
"""
在cmd窗口中执行py文件:python py文件 命令1 命令2 ...
输出:[py文件名, 命令1, 命令2, ...]
"""
sys.argv[0] # 返回py文件名
sys.argv[1] # 返回第一个命令
sys.argv[2] # 返回第二个命令
...

返回解释器版本信息

sys.version

获取平台信息

sys.platform

正常退出程序后输出内容

sys.exit(内容)  # 程序正常退出才会输出

json模块

json是什么?

json是一个序列化模块,主要用于跨语言传输数据。json格式的数据是不同编程语言之间数据交互的媒介,基本上每个编程语言都能识别json格式的数据,识别的过程叫做反序列化。

json本质上是字符串类型的,在python中,它的格式与字典极其相似。

字典的数据格式:

{'username':'abc','age':18}

json数据格式:

{"username": "abc", "age": 18}

可以看到,它们的区别就在引号上,双引号是json格式数据独有的标志符号。

json模块

导入

import json

序列化:将数据转换成json格式字符串

json.dumps(要序列化的数据)

# 案例
d = {'username': 'abc', 'age': 18}
res = json.dumps(d)
print(res, type(res))
# 输出:{"username": "abc", "age": 18} <class 'str'>

反序列化:将json格式字符串转换成对应的数据类型

json.loads(要反序列化的数据)

# 案例
d = '{"username": "abc", "age": 18}'
res = json.loads(d)
print(res, type(res))
# 输出:{'username': 'abc', 'age': 18} <class 'dict'>

将数据转成json格式字符串后写入文件

json.dump(要序列化的数据, 文件名)

# 案例
d = {"username": "abc", "age": 18} # json格式数据
with open(r'a.txt','w',encoding='utf8') as f:
json.dump(d, f)

将存储json格式字符串的文件读取后转成对应的数据类型

json.load(文件名)

# 案例
with open(r'a.txt','r',encoding='utf8') as f:
print(json.load(f))

可以被序列化的数据类型可以查看JSONEncoder的源码

subprocess模块

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

导入模块

import subprocess

run()方法

subprocess.run(args, *, stdin=None, input=None, stdout=None,
stderr=None, capture_output=False, shell=False, cwd=None,
timeout=None, check=False, encoding=None, errors=None,
text=None, env=None, universal_newlines=None)

来自菜鸟教程:

  • args:shell命令,可以是字符串或者序列类型(如:list,元组)
  • bufsize:缓冲区大小。当创建标准流的管道对象时使用,默认-1。

    0:不使用缓冲区

    1:表示行缓冲,仅当universal_newlines=True时可用,也就是文本模式

    正数:表示缓冲区大小

    负数:表示使用系统默认的缓冲区大小。
  • stdin, stdout, stderr:分别表示程序的标准输入、输出、错误句柄
  • preexec_fn:只在 Unix 平台下有效,用于指定一个可执行对象(callable object),它将在子进程运行之前被调用
  • shell:如果该参数为 True,将通过操作系统的 shell 执行指定的命令。
  • cwd:用于设置子进程的当前目录。
  • env:用于指定子进程的环境变量。如果 env = None,子进程的环境变量将从父进程中继承。

Popen()方法

subprocess.Popen(args, bufsize=-1, executable=None, stdin=None,
stdout=None, stderr=None, preexec_fn=None, close_fds=True,
shell=False, cwd=None, env=None, universal_newlines=False,
startupinfo=None, creationflags=0,restore_signals=True,
start_new_session=False, pass_fds=(),
*, encoding=None, errors=None) # 执行ls命令
res = subprocess.Popen('ls',shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
) # 获取正确命令执行之后的结果
res.stdout.read().decode('utf8') # 获取错误命令执行之后的结果
res.stderr.read().decode('utf8')

来自菜鸟教程:

  • args:shell命令,可以是字符串或者序列类型(如:list,元组)
  • bufsize:缓冲区大小。当创建标准流的管道对象时使用,默认-1。

    0:不使用缓冲区

    1:表示行缓冲,仅当universal_newlines=True时可用,也就是文本模式

    正数:表示缓冲区大小

    负数:表示使用系统默认的缓冲区大小。
  • stdin, stdout, stderr:分别表示程序的标准输入、输出、错误句柄
  • preexec_fn:只在 Unix 平台下有效,用于指定一个可执行对象(callable object),它将在子进程运行之前被调用
  • shell:如果该参数为 True,将通过操作系统的 shell 执行指定的命令。
  • cwd:用于设置子进程的当前目录。
  • env:用于指定子进程的环境变量。如果 env = None,子进程的环境变量将从父进程中继承。

python之模块(os、sys、json、subprocess)的更多相关文章

  1. 模块random+os+sys+json+subprocess

    模块random+os+sys+json+subprocess 1. random 模块   (产生一个随机值) import random 1 # 随机小数 2 print(random.rando ...

  2. Python常用模块os & sys & shutil模块

    OS模块 import os ''' os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录: ...

  3. python - 常用模块 os, sys

    常用模块: os(处理文件和目录), sys(sys 模块包含了与 Python 解释器和它的环境有关的函数.) sys.argv 变量是一个字符串的 列表.特别地,sys.argv 包含了 命令行参 ...

  4. python --- 23 模块 os sys pickle json

    一.   os模块 主要是针对操作系统的 用于文件操作 二.    sys 模块 模块的查找路径   sys.path 三.pickle 模块 1.  pickle.dumps(对象) 序列化  把对 ...

  5. python模块之sys和subprocess以及编写简单的主机扫描脚本

    python模块之sys和subprocess以及编写简单的主机扫描脚本 1.sys模块 sys.exit(n)  作用:执行到主程序末尾,解释器自动退出,但是如果需要中途退出程序,可以调用sys.e ...

  6. Python调用外部程序——os.system()和subprocess.call

    通过os.system函数调用其他程序 预备知识:cmd中打开和关闭程序 cmd中打开程序 a.打开系统自带程序 系统自带的程序的路径一般都已加入环境变量之中,只需在cmd窗口中直接输入程序名称即可. ...

  7. Python常用模块之sys

    Python常用模块之sys sys模块提供了一系列有关Python运行环境的变量和函数. 常见用法 sys.argv 可以用sys.argv获取当前正在执行的命令行参数的参数列表(list). 变量 ...

  8. python之模块 os

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块 os import os ''' FUNCTIONS abort(...)#暂不了解 a ...

  9. python常用模块之sys模块

    python常用模块之sys模块 1.sys.argv[]:命令行参数List,第一个元素是程序本身 # 写一个简单的python程序,代码如下: #!/usr/bin/python #coding= ...

  10. Python文件属性模块Os.path

    Python文件属性模块Os.path介绍 os.path模块主要用于文件属性获取和判断,在编程中会经常用到,需要熟练掌握.以下是该模块的几种常用方法. os.path官方文档:http://docs ...

随机推荐

  1. java中Error和Exception用法上有什么区别,Error是怎么回事?

    顺便提一句, 和Exception 相对应的,还有Error,Error(错误)表示系统级的错误和程序不必处理的异常,是JRE(java运行环境)的内部错误或者硬件问题,比如,另外 某一处地方的bug ...

  2. 【Android开发】用WebView访问证书有问题的SSL网页

    Android系统的碎片化很严重,并且手机日期不正确.手机根证书异常.com.google.android.webview BUG等各种原因,都会导致WebViewClient无法访问HTTPS站点. ...

  3. Python疫情爬取输出到txt文件

    在网上搬了一个代码,现在不适用了,改了改 import requestsimport jsondef Down_data(): url = 'https://view.inews.qq.com/g2/ ...

  4. h5页面跳转小程序

    2020年以前, 只能通过 web-view内嵌h5跳转小程序,现在  可以直接跳了!!!!!!  官方文档:https://developers.weixin.qq.com/doc/offiacco ...

  5. 设计模式之:享元模式FlyweightPattern的实现

    享元模式的理解: 享元模式的定义:运用共享技术支持大量细粒度对象的复用: Flyweight Pattern Definition:Use sharing to support large numbe ...

  6. Ubuntu安装开发者平台Backstage

    Ubuntu安装开发者平台Backstage 什么是Backstage? Backstage是一个构建开发者门户的开源平台.通过支持一个集中的软件分类,Backstage可以保存并发布你的微服务和基础 ...

  7. C++---条件结构和循环结构

    条件结构 if结构 #include <iostream> using namespace std; int main() { //判断用户输入的字符是否是合法的硬盘盘符A-Z char ...

  8. Conda安装及第一个py程序

    Conda安装及第一个py程序 安装Conda 下载安装 在Anaconda官网下载Anaconda 打开Conda安装程序 设置好安装目录(这个一定要记好,后边要用),比如我的目录就是 D:\Pro ...

  9. 安卓记账本开发学习day7之完成进度

    支持长按删除记录,与根据备注搜索相关的收入或支出情况

  10. vue3 操作修改数据

    vue2.x改变数据: <template>   <div class="v2">     这是数据展示:     <div v-for=" ...