Python攻克之路-sys模块

sys模块
描述:sys模块所提供的方法实际是与python解释器交互

1.argv传入参数****
描述:如ftp上传或下载的功能,如Python脚本有很多功能,如有上传功能,需要传入一个参数post,当传入时作一个判断,把上传的功能放到这块执行,如果输入是下载的功能放在一部分,把程序分割开,当进行时就可以根据需求去实现,而且可以传入多个参数,如上传可以post,还可以传入某个文件的路径

[root@python3 day18]# cat sys_module.py
#!/usr/local/python3/bin/python3
import sys
print(sys.argv)
[root@python3 day18]# python3 sys_module.py post path  #它的第一个参数要是文件的名字
['sys_module.py', 'post', 'path']  #列表

2.加入判断调用所需功能
描述:如果传入Post就调用上传功能,download就调用下载功能

[root@python3 day18]# cat sys_module.py  #传入参数不限制,传入越来就控制越灵活
#!/usr/local/python3/bin/python3
import sys
print(sys.argv)
def post():
    print('upload')

def download():
    print('download')

if sys.argv[1]=='post':
    post()

elif sys.argv[1]=='download':
    download()
[root@python3 day18]# python3 sys_module.py post 
['sys_module.py', 'post']
upload

3.exit退出程序,正常退出时使用exit(0)

sys.exit(0)

4.version获取Python解释程序的版本信息

In [3]: sys.version
Out[3]: '3.6.2 (default, Jan 28 2018, 14:06:07) \n[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)]'

5.path返回模块的搜索路径,初始化时使用PYTHON环境变量的值

In [4]: import time
In [5]: sys.path
Out[5]: 
['',
 '/usr/local/python3/bin',
 '/usr/local/python3/lib/python36.zip',
 '/usr/local/python3/lib/python3.6',
 '/usr/local/python3/lib/python3.6/lib-dynload',
 '/usr/local/python3/lib/python3.6/site-packages',
 '/usr/local/python3/lib/python3.6/site-packages/IPython/extensions',
 '/root/.ipython']

把自定义的模块路径追加到系统搜索路径中

In [6]: sys.path.append('/root/modules')
In [7]: sys.path
Out[7]: 
['',
 '/usr/local/python3/bin',
 '/usr/local/python3/lib/python36.zip',
 '/usr/local/python3/lib/python3.6',
 '/usr/local/python3/lib/python3.6/lib-dynload',
 '/usr/local/python3/lib/python3.6/site-packages',
 '/usr/local/python3/lib/python3.6/site-packages/IPython/extensions',
 '/root/.ipython',
 '/root/modules']     ####

6.platform返回平台的名称
描述:比较好的程序解决跨平台问题,可以使用这个方法获取平台名称来做判断

In [8]: sys.platform
Out[8]: 'linux'

7.实现跨平台判断

In [9]: import os
In [10]: if sys.platform == 'linux':
    ...:     os.system('ls')
    ...: else:
    ...:     os.system('dir')
    ...:     
anaconda-ks.cfg
cmdline-jmxclient-0.10.3.jar

8.stdout.write标准输出

In [11]: sys.stdout.write('ok')
Out[11]: ok2

  

 

posted @ 2018-03-29 09:17  Reid21  阅读(124)  评论(0)    收藏  举报