码迷,mamicode.com
首页 > 编程语言 > 详细

python基础之模块之sys模块

时间:2016-05-14 16:52:00      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

sys模块的功能

sys是python中较为常用的一个模块,他提供了对python脚本运行时的环境的操作。

 

sys功能:

1  sys.argv     #将python脚本运行时的脚本名以及参数作为一个list,并输出。

技术分享
# test_py.py文件
#/usr/bin/python3
import sys

print(the script name is:,sys.argv[0])
if len(sys.argv) > 1:
    print("there are", len(sys.argv)-1, "arguments:")  # 使用len(sys.argv)-1采集参数个数-1为减去[0]脚本名称
    for arg in sys.argv[1:]:            #输出除了[0]外所有参数
        print(arg)
else:
    print("there are no arguments!")



[root@slyoyo ~]# python3 test_py.py haha
the script name is: test_py.py
there are 1 arguments:
haha
View Code

2  sys.path    #返回一个list,该list为当前脚本的path环境变量(PYTHONPATH)

技术分享
>>> sys.path
[‘‘, /usr/local/python/lib/python34.zip, /usr/local/python/lib/python3.4, /usr/local/python/lib/python3.4/plat-linux, /usr/local/python/lib/python3.4/lib-dynload, /usr/local/python/lib/python3.4/site-packages]
View Code

  如果我们要增加或者删除pythonpath的话,使用list的insert或者pop功能即可。

技术分享
import os,sys
print(sys.path)
new_path=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
print(new_path)
sys.path.insert(0,new_path)
print(sys.path)

#结果:
[C:\\Users\\Capital-D\\PycharmProjects\\untitled\\test\\atm\\fun, C:\\Users\\Capital-D\\PycharmProjects\\untitled, C:\\windows\\SYSTEM32\\python34.zip, C:\\Python34\\DLLs, C:\\Python34\\lib, C:\\Python34, C:\\Python34\\lib\\site-packages]
C:\Users\Capital-D\PycharmProjects\untitled\test\atm
[C:\\Users\\Capital-D\\PycharmProjects\\untitled\\test\\atm, C:\\Users\\Capital-D\\PycharmProjects\\untitled\\test\\atm\\fun, C:\\Users\\Capital-D\\PycharmProjects\\untitled, C:\\windows\\SYSTEM32\\python34.zip, C:\\Python34\\DLLs, C:\\Python34\\lib, C:\\Python34, C:\\Python34\\lib\\site-packages]
View Code

3  sys.platform   #返回当前平台

技术分享
import sys,os
print(sys.platform)
#结果:
win32
View Code

4  sys.stdout   sys.stdin   #标准输出/输入

技术分享
print Dive in        # 标准输出
saveout = sys.stdout        # 终在重定向前保存stdout,这样的话之后你还可以将其设回正常
fsock = open(out.log, w)      # 打开一个新文件用于写入。如果文件不存在,将会被创建。如果文件存在,将被覆盖。
sys.stdout = fsock                 # 所有后续的输出都会被重定向到刚才打开的新文件上。

print  This message will be logged instead of displayed    # 这样只会将输出结果“打印”到日志文件中;屏幕上不会看到输出

sys.stdout = saveout   # 在我们将 stdout 搞乱之前,让我们把它设回原来的方式。    

fsock.close()     # 关闭日志文件。
View Code

 5  sys.stderr   #错误输出

使用方法同上

python基础之模块之sys模块

标签:

原文地址:http://www.cnblogs.com/MnCu8261/p/5492291.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!