sys模块学习:

1. sys模块

1) 处理命令行参数

print "script name is", sys.argv[0]        # 使用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!"

2. 查询扩展模块路径

sys.path

3. 使用sys模块查找内建模块

builtin_module_names 列表包含 Python 解释器中所有内建模块的名称

sys.builtin_module_names

使用sys模块查找已导入的模块

print sys.modules.keys()

4. 使用sys模块获得当前平台

sys.platform  返回当前平台 出现如: "win32" "linux2" 等

5. 处理标准输出/输入

标准输入和标准错误 (通常缩写为 stdout 和 stderr) 是内建在每一个 UNIX 系统中的管道
>>> import sys
>>> for i in range(3):
...     sys.stdout.write('Dive in')
Dive inDive inDive in
>>> for i in range(3):
...     sys.stderr.write('Dive in')
Dive inDive inDive in
1) 重定向输出
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()     # 关闭日志文件。
2) 重定向错误信息
fsock = open('error.log', 'w')           # 打开你要存储调试信息的日志文件。
sys.stderr = fsock                           # 将新打开的日志文件的文件对象赋值给stderr以重定向标准错误。
raise Exception, 'this error will be logged'   # 引发一个异常,没有在屏幕上打印出任何东西,所有正常的跟踪信息已经写进error.log
还要注意你既没有显式关闭日志文件,也没有将 stderr 设回最初的值。
这样挺好,因为一旦程序崩溃 (由于引发的异常),Python 将替我们清理并关闭文件

3) 输入的用法

import sys
while True:
        line = sys.stdin.readline()
        line = line.strip('\r').strip('\n')
        if line == '':
                break
        print "====", line

6. 使用sys模块退出程序

import sys
sys.exit(1)
注意 sys.exit 并不是立即退出. 而是引发一个 SystemExit 异常. 这意味着你可以在主程序中捕获对 sys.exit
1) 另一种捕获sys.exit调用的方法
def exitfunc():
    print "world"

sys.exitfunc = exitfunc  # 设置捕获时调用的函数

print "hello"
sys.exit(1)     # 退出自动调用exitfunc()后,程序依然退出了
print "there"  # 不会被 print
2) 捕获sys.exit调用
import sys
print "hello"
try:
    sys.exit(1)
except SystemExit:   # 捕获退出的异常
    pass                    # 捕获后不做任何操作
print "there"

输出结果:

hello

there

时间: 2024-11-26 18:06:08

sys模块学习:的相关文章

python标准库之sys模块 学习

通过这节学习来知道如何在linux下执行python代码 sys是system的缩写,用来获取操作系统和编译器的一些配置,设置及操作 我们要充分的理解他最好是在linux的环境下进行测试 sys.argv[0] ,返回的是代码所在文件的路径 [[email protected] ~]$ vi test.py [[email protected] ~]$ python3 test.py test.py [[email protected] ~]$ cat test.py import sys pr

【Python模块学习】sys模块

sys模块的操作如下: 1 sys.argv # 实现从程序外部向程序传递参数. 2 sys.exit([arg]) # 程序中间的退出,arg=0为正常退出. 3 sys.getdefaultencoding() # 获取系统当前编码,一般默认为ascii. 4 sys.setdefaultencoding() # 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding('utf8'),此时

Python学习总结12:sys模块

sys模块常用来处理Python运行时配置以及资源,从而可以与前当程序之外的系统环境交互. 1. 导入及函数查看 >>> import sys #导入sys模块 >>> dir(sys) #dir()方法查看模块中可用的方法 注意:如果是在编辑器,一定要注意要事先声明代码的编码方式,否则中文会乱码. 2. 重要函数变量 sys.argv 命令行参数List,第一个元素是程序本身路径     sys.modules.keys() 返回所有已经导入的模块列表     sys

Python3 学习第十一弹: 模块学习四之sys库

sys模块 提供一些与python解释器关系紧密的变量和函数 1> argv 命令行参数 通过命令行可以向python传输参数 2> exit([arg]) 程序退出,可以返回给命令行一个错误参数或返回值 ## test.py ## import sys i = 0 for argv in sys.argv: print('第', i, '个参数: ', argv) i += 1 exit(argv) 3> path 一个存储Python基本源模块的路径的列表,可以自行添加自定义模块路径

Python学习笔记——基础篇【第五周】——os模块和sys模块

OS模块 提供对操作系统进行调用的接口 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.curdir 返回当前目录: ('.') os.pardir 获取当前目录的父目录字符串名:('..') os.makedirs('dirname1/dirname2') 可生成多层递归目录 os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级

python基础学习os模块和sys模块

os模块和sys模块import osos.getcwd() #获取当前工作目录os.chdir() #切换目录os.makedirs() #递归创建一个目录os.removedirs() #递归删除一个目录(若目录为空则删除并递归到上一层目录,如果为空再删除,在递归到上一层目录)os.mkdir() #不递归创建目录os.rmdir() #不递归删除目录os.listdir() #查看指定目录下的所有文件和目录os.remove() #删除一个文件os.rename(oldname,newna

python学习笔记-day6-【 sys模块, 导入模块的方法】

记录下 sys模块的用法,看着不难,但容易忘记的东西. 一.sys模块 1.常见的使用方法 2.如何导入其他模块的python文件 3.导入同目录下的python模块 4.导入方式二 5.把所需导入的模块放到python环境变量中任何一个目录都可以,但是这样做太麻烦 6.把导入模块的目录加入到Python的环境变量中去,即可 二.sys.argv 用法 1.sys.argv意义 2.用来判断从命令行执行的参数的合法性,示例代码 原文地址:https://www.cnblogs.com/shmil

Python学习日记(十七) os模块和sys模块

os模块 1.os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 import os print(os.getcwd()) #C:\Users\Administrator\PycharmProjects\PYL\temp_file 2.os.chdir() 改变当前脚本工作目录;相当于shell下cd import os print(os.getcwd()) #C:\Users\Administrator\PycharmProjects\PYL\temp_file o

Python 模块学习

模块学习: http://wsyht90.blog.51cto.com/9014030/1845737 1.getpass 2.os 3.sys 4.subprocess 5.hashlib 6.json 7.pickle 8.shutil 9.time 10.datetime 11.re 12.random 13.configparser 14.traceback 15.yaml 16.itertools 17.logging 18.urllib.urllib2 19.paramiko ###