zoukankan      html  css  js  c++  java
  • 12.python内置模块之sys模块介绍

    python的sys模块是与python解释器交互的一个接口,提供对解释器使用或维护的一些变量的访问,即与解释器强烈交互的函数。

    sys模块的常用函数:

    1.sys.argv:命令行参数列表。第一个元素是脚本的名称,后面是终端传入的值;可以在执行整个程序前通过终端传入参数,然后执行程序,实现从程序外部向程序内部来传递参数。

    2.sys.path:返回模块的搜索路径的列表。可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。也可以使用        sys.path.append(path)添加模块搜索路径。

    3.sys.exit(n):退出解释器,n=0为正常退出,其他为异常退出。一般情况下执行到主程序末尾,解释器自动退出。但是如果需要中途退出  程序,可以调用sys.exit函数。【注意】exit()运用在交互式shell中,而sys.exit主要用于程序中,二者功能类似。

    4.sys.modules:python启动时就被导入的所有模块,以及import 导入的模块存放的一个字典 key为模块的名称,value为模块对应的内 存地址。sys.modules是一个全局字典,该字典是python启动后就加载在内存中。每当导入新的模块,sys.modules将自动记录该模块。当第二次再导入该模块时,python会直接到字典中查找,从而加快了程序运行的速度。它拥有字典所拥有的一切方法。

    5.sys.version获取Python解释程序的版本信息。

    6.sys.platform:返回操作系统平台名称。如:win32、Linux等。

    7.sys.stdin/sys.stdout:标准输入/标准输出。如果需要更好地控制输出,而print不能满足要求时,可以使用它们。

    8.sys.getdefaultencoding() :获取系统当前编码,一般默认为ascii。

    9.sys.setdefaultencoding() :设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding('utf8'),此时将系统默认编码设置为utf8。

    10.sys.getfilesystemencoding() :获取文件系统使用编码方式,例如:mac下返回'utf-8'。

    函数演示:

     1.假设sys.py脚本文件内容如下:

    1 #!/usr/bin/env python
    2 
    3 import sys
    4 print(sys.argv[0])
    5 print(sys.argv[1])

    命令行执行:python sys.py first ,则输出:

    1 sys.py
    2 first

     2.假设exit.py脚本文件内容如下:

     1 #!/usr/bin/env python
     2 
     3 import sys
     4 
     5 def exitfunc(value):
     6     print(value)
     7     sys.exit(0)
     8 
     9 print("hello1")
    10 
    11 try:
    12     sys.exit(1)
    13 except SystemExit,value:
    14     exitfunc(value)
    15 
    16 print("hello2")

    命令行执行:python exit.py,则输出:

    1 hello1
    2 1

     3.sys.path演示:

    1 import sys
    2 
    3 sys.path
    4 
    5 # 输出结果:
    6 # ['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk',
    7 # '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', 
    8 # '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat',
    9 # '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client']

     4.sys.modules演示:

    1 #!/usr/bin/env python
    2 
    3 import sys
    4 
    5 print(sys.modules.keys())
    6 print(sys.modules.values())
    7
    8 print(sys.modules["os"]) # 输出 os 模块的路径

     5.sys.stdout标准输出演示:

    1 import time
    2 
    3 for i in range(50):
    4     sys.stdout.write("*")    # 打印*号,输出 *1 ;类似于print ,但print输出则为 *,这是区别
    5     time.sleep(0.1)
    6     sys.stdout.flush()   # 刷新,显示到屏幕上
    7 
    

     

  • 相关阅读:
    UVALive 6909 Kevin's Problem 数学排列组合
    UVALive 6908 Electric Bike dp
    UVALive 6907 Body Building tarjan
    UVALive 6906 Cluster Analysis 并查集
    八月微博
    hdu 5784 How Many Triangles 计算几何,平面有多少个锐角三角形
    hdu 5792 World is Exploding 树状数组
    hdu 5791 Two dp
    hdu 5787 K-wolf Number 数位dp
    hdu 5783 Divide the Sequence 贪心
  • 原文地址:https://www.cnblogs.com/bonheur/p/12337407.html
Copyright © 2011-2022 走看看