(一)sys
sys:提供一组功能映射Python运行时的操作系统
- 平台与版本
sys.platform
'win32'
sys.version
'3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:57:36) [MSC v.1900 64 bit (AMD64)]'
sys.path
['D:\\mysoftware\\PyCharm 2019.1.3\\helpers\\pydev', 'D:\\mysoftware\\PyCharm 2019.1.3\\helpers\\pycharm_display', 'D:\\mysoftware\\PyCharm 2019.1.3\\helpers\\third_party\\thriftpy', 'D:\\mysoftware\\PyCharm 2019.1.3\\helpers\\pydev', 'E:\\py\\PY_demo1\\venv\\Scripts\\python36.zip', 'D:\\mysoftware\\Python36\\DLLs', 'D:\\mysoftware\\Python36\\lib', 'D:\\mysoftware\\Python36', 'E:\\py\\PY_demo1\\venv', 'E:\\py\\PY_demo1\\venv\\lib\\site-packages', 'E:\\py\\PY_demo1\\venv\\lib\\site-packages\\setuptools-40.8.0-py3.6.egg', 'E:\\py\\PY_demo1\\venv\\lib\\site-packages\\pip-19.0.3-py3.6.egg', 'D:\\mysoftware\\PyCharm 2019.1.3\\helpers\\pycharm_matplotlib_backend', 'E:\\py\\PY_demo1', 'E:/py/PY_demo1']
---------------------------------------------------
sys.modules#程序当前载入的模块
- 观察异常细节
import traceback
try:
raise KeyError
except:
print(sys.exc_info())
(, KeyError(), )
----------------------------------------------------------------------------
try:
raise KeyError
except:
print(sys.exc_info())
traceback.print_tb(sys.exc_info()[2])
(, KeyError(), )
File "", line 2, in
sys.argv
命令行运行时的所有参数列表
标准流
sys.stdin()
sys.stdout()
sys.stderror()
(二)os
os:提供跨平台可移植的操作系统编程接口
- os.environ python的一些环境变量
- 管理工具
os.getcwd()
'E:\\py\\PY_demo1'
----------------------
os.listdir()
['.idea', 'a', 'a.txt', 'assert_method.py', 'coder.py', 'data.txt', 'date_list.txt', 'example.py', 'except.py', 'flat_file.py', 'fun_demo.py', 'lambd.py', 'main.py', 'Main2.py', 'package_demo.py', 'shelvedemo.py', 'shelve_student.bak', 'shelve_student.dat', 'shelve_student.dir', 'Test.py', 'Test2.py', 'test_coder.py', 'unitest.py', 'venv', '__pycache__']
----------------------------------
os.chdir(a)
--------------------------
os.getpid()
23028
os.getppid()
8000
- 运行shell命令
os.system('dir /a') #windows系统
os.system('ls /a') #linux系统
---------------------------------------------
f = os.popen('dir /a').read()
f = os.popen('dir /a').readlines()
- 文件与目录
os.rename('a.txt','b.txt')
os.remove('b.txt')
os.mkdir('a')
os.rmdir('a')
- 可移植工具
os.sep #当前操作系统的分隔符
os.pathsep #路径分隔符,多个路径的分隔
os.curdir #.
os.pardir #..
- path组件
os.path.isdir() #判断是否为dir
os.path.isfile() #是否为文件
os.path.exists() #是否存在
os.path.getsize() #多少字节
--------------------------------
os.path.split(r'c:\data\q.txt')
('c:\\data', 'q.txt')
name.split(os.sep)
['c:', 'data', 'q.txt']
--------------------------------
os.path.dirname(name)
'c:\\data'
os.path.basename(name)
'q.txt'
--------------------------------
os.path.splitext(name)
('c:\\data\\q', '.txt')
--------------------------------
os.path.join(r'c:\remp','a.txt')
'c:\\remp\\a.txt'
-------------------------------
p = 'd:\\app\\db/file/data.txt'
os.path.normpath(p) #规范标准化路径
'd:\\app\\db\\file\\data.txt'
-----------------------------------
os.path.abspath('..')
'E:\\py'