python DAY_11(3) 系统编程

学习内容:
系统编程主要是sys和os操作
Tips:(参考他人)
**sys提供一组功能映射python运行时的操作系统
os提供跨平台可移植的操作系统编程接口
os.path提供文件以及目录工具的可移植编程接口
os的进本框架如下:
**在这里插入图片描述

在这里插入图片描述
重点:
1.sys相关操作

import sys
sys.platform#查看当前系统平台
Out[3]: 'win32'
sys.version#查看版本
Out[4]: '3.7.3 (default, Mar 27 2019, 17:13:21) [MSC v.1915 64 bit (AMD64)]'
sys.path

sys.path会显示当前运行的路径有哪些
sys.modules会显示当前的模块,因为内容太多,不在截取

sys查找最后一次出错的位置

import sys
import traceback
try:
    raise keyError
except:
    print(sys.exc_info())
    traceback.print_tb(sys.exc_info()[2])
    
(<class 'NameError'>, NameError("name 'keyError' is not defined"), <traceback object at 0x000001D115D31DC8>)
  File "<ipython-input-9-5303c1cf5cf9>", line 2, in <module>
    raise keyError

sys.argv的操作
可以获取文件具体位置的具体内容
我们创建一个add.py的文件,写下以下代码

import sys


def add(a, b):
    return a + b


a = 0
b = 0
if sys.argv[1]:
    a = int(sys.argv[1])
if sys.argv[2]:
    b = int(sys.argv[2])
print(add(a, b))

我们打开pycharm自带的terminal(或者使用本机cmd)来运行
结果如下

在这里插入图片描述
我们发现,有结果输出,这就表明,sys.arvg命令可以获取所需内容,这个内容还可以进行一定的操作
sys的标准流

import sys
sys.stdout.write("hello")#标准输出
helloOut[11]: 5
sys.stdin.readline()[:]#标准输入
name
Out[12]: 'name\n'
sys.stderr.write("worry")
worryOut[13]: 5
sys.stderr.flush()

上述操作具体可参考别的资料,这里不再赘述

2.os的相关操作
基本包括
os.envirson()获取版本
os.getcwd()获取当前工作路径
os.listdir()获取目录内容
os.chdir()更改目录
os.getpid()获取进程
os.getppid()获取父进程

type功能,在pycharm自带的terminal下写下type+文件名可以查看文件具体内容

(base) D:\MyProjects\Mytest>type add.py

结果如下
在这里插入图片描述.system()操作

import os
os.system("dir")

结果如下
在这里插入图片描述
.popen()

os.popen("type add.py")
Out[5]: <os._wrap_close at 0x244033de438>

我发现不同于.system这个输出结果是一串字符
结果不是直接打印,交给一个输入输出流的文件来处理
所以在以后只要打印,用system就行了

其他操作

os.mkdir("text")#创建一个文件夹
os.listdir()
Out[4]: 
['.idea',
 'add.py',
 'Cal.py',
 'DAY_10',
 'DAY_11',
 'DAY_6',
 'DAY_7',
 'DAY_8',
 'DAY_9',

结果如下
在这里插入图片描述
创建成功

还有
**os.rename(“原名 “,“改后的名字 “)更改名字
os.remove(“文件名”)删除文件
os.chdir(”…”)返回上级目录
os.rmdir(” 名字”)删除目录
os.path.isdir(" 123")判断这里的目录是否为 123
os.path.isfile(“ 123”)判断是不是文件 123
os.path.exists(r" “)判断是否存在
os.path.getsize(r” ")获得长度
os.path.split(r"123 ")拆分123

os
.path.**dirname()
os.path.basename()
os.path.splitext()[]
os.path.join(r"123 ","2343 ")连接两个路径
。。。更多的操作可以查阅资料,这里不再赘述

发布了33 篇原创文章 · 获赞 0 · 访问量 696

猜你喜欢

转载自blog.csdn.net/soulproficiency/article/details/103952942