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

浙公网安备 33010602011771号