zoukankan      html  css  js  c++  java
  • python基础之模块之sys模块

    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:UsersCapital-DPycharmProjectsuntitled	estatm
    ['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   #错误输出

    使用方法同上

  • 相关阅读:
    POJ1486 Sorting Slides 二分图or贪心
    POJ2060 Taxi Cab Scheme 最小路径覆盖
    POJ3083 Children of the Candy Corn 解题报告
    以前的文章
    POJ2449 Remmarguts' Date K短路经典题
    这一年的acm路
    POJ3014 Asteroids 最小点覆盖
    POJ2594 Treasure Exploration 最小路径覆盖
    POJ3009 Curling 2.0 解题报告
    POJ2226 Muddy Fields 最小点集覆盖
  • 原文地址:https://www.cnblogs.com/MnCu8261/p/5492291.html
Copyright © 2011-2022 走看看