学习内容:
系统编程主要是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 ")连接两个路径
。。。更多的操作可以查阅资料,这里不再赘述