此文转载于 https://www.jianshu.com/p/e61dd809a060,只是用于个人需求
sys模块用于提供对解释器相关的操作
模块方法 解释说明
sys.argv 传递到Python脚本的命令行参数列表,第一个元素是程序本身路径
sys.executable 返回Python解释器在当前系统中的绝对路径
sys.exit([arg]) 程序中间的退出,arg=0为正常退出
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称,Linux是linux2,Windows是win32
sys.stdout.write(str) 输出的时候把换行符\n去掉
val = sys.stdin.readline()[:-1] 拿到的值去掉\n换行符
sys.version 获取Python解释程序的版本信息
1.位置参数
[root@ansheng ~]# cat scripts.py
#!/usr/bin/env python
import sys
print(sys.argv[0])
print(sys.argv[1])
print(sys.argv[2])
[root@ansheng ~]# python scripts.py canshu1 canshu2
scripts.py
canshu1
canshu2
sys.argv[0]代表脚本本身,如果用相对路径执行则会显示脚本的名称,如果是绝对路径则会显示脚本名称;
2.程序中途退出
python在默认执行脚本的时候会由头执行到尾,然后自动退出,但是如果需要中途退出程序, 你可以调用sys.exit函数,它带有一个可选的整数参数返回给调用它的程序. 这意味着你可以在主程序中捕获对sys.exit的调用。(注:0是正常退出,其他为不正常,可抛异常事件供捕获!)
[root@iZ28i253je0Z sys]# cat sys-03.py
#!/usr/bin/python
# _*_ coding:utf-8 _*_
import sys
print "hello word!"
print "your is pythoner"
[root@iZ28i253je0Z sys]# python sys-03.py
hello word!
your is pythoner
执行脚本之后会输出,下面这两段内容:
hello word!
your is pythoner
然后我们在print "hello word!"之后让程序退出不执行print “your is pythoner”
[root@iZ28i253je0Z sys]# cat sys-03.py
#!/usr/bin/python
# _*_ coding:utf-8 _*_
import sys
print "hello word!"
sys.exit()
print "your is pythoner"
[root@iZ28i253je0Z sys]# python sys-03.py
hello word!
3.获取模块路径
在使用Python中用import、import导入模块的时候,那Python是怎么判断有没有这个模块的呢? 其实就是根据sys.path的路径来搜索你导入模块的名称。
>>> for i in sys.path:
... print(i)
...
/usr/local/lib/python3.5/site-packages/pysnmp_apps-0.4.1-py3.5.egg
/usr/local/lib/python3.5/site-packages/pysnmp-4.3.2-py3.5.egg
/usr/local/lib/python3.5/site-packages/pycrypto-2.6.1-py3.5-linux-x86_64.egg
/usr/local/lib/python3.5/site-packages/pysmi-0.0.7-py3.5.egg
/usr/local/lib/python3.5/site-packages/pyasn1-0.1.9-py3.5.egg
/usr/local/lib/python3.5/site-packages/ply-3.9-py3.5.egg
/usr/local/lib/python3.5/site-packages/setuptools-19.2-py3.5.egg
/usr/local/lib/python35.zip
/usr/local/lib/python3.5
/usr/local/lib/python3.5/plat-linux
/usr/local/lib/python3.5/lib-dynload
/usr/local/lib/python3.5/site-packages
4.获取当前系统平台
Linux:
>>> sys.platform
'linux
Windows:
In [3]: import sys
In [4]: sys.platform
Out[4]: 'win32'