Python sys模块

'''

sys.argv[0]表示程序文件本身文件名(含路径)

sys.argv[1]表示运行命令的第一个参数

sys.argv[1:]表示运行命令的第二个到最后一个参数

sys.argv 表示运行命令的全部参数

'''

import sys

#1.处理命令运行参数sys.argv

print('程序路径:',sys.argv[0])

#2.处理模块sys.path

'''

path列表是一个由目录名构成的列表,返回模块的搜索途径 python从中查找模块(python 源模块 编译模块 或者二进制扩展)

'''

# print(sys.path)

# print('Path 包括:',len(sys.path),'各部分构成')

# sys.path.insert(0,'samples') #将指定路径插入到path中第一个位置

# print(sys.path)

# print('Path 包括:',len(sys.path),'各部分构成')

# sys.path = [] #删除path中所有路径

# print(sys.path)

#查找模块在某个地方

# def d(module):

#     print(module,'=>')

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

#     if module in sys.builtin_module_names: #查找内建模块是否存在

#         print('<builtins>')

#     else:

#         module = __import__(module) #非内建模块输出模块路径 先导入 在输出

#         print(module.__file__)

# d("os")

# d("io")

# d("abc")

# print(sys.modules.keys()) #module字典包含所有的加载的模块

#3.处理引用记数:getrefcount函数可以返回对象的引用计数即这个对象的使用次数

# 当object对象的引用计数为0时,系统会回收该对象即销毁该对象

a = [1,2,3]

b = [1,2,3,4]

b = a

c = b

print(sys.getrefcount(a))

#4.跟踪程序:setprofiler 函数允许你配置一个分析函数(profiling function)

#这个函数会在每次调用某个函数或方法时被调用(明确或隐含的) 或是遇到异常的时候调用

# def d(x):

#     print('123')

#     return x

# def test(n):

#     j = 0

#     for i in range(n):

#         j = j + i

#     return n

# def tracer(frame,event,arg):

#     print(event,frame.f_code.co_name,frame.f_lineno,"->",arg)

#     return tracer

# #d()

# #跟踪器将在下面=次函数函数调用,返回,或异常时激活

# sys.settrace(tracer)

# #跟踪这次函数调用

# test(1)

# d(333)

# #禁用跟踪器

# sys.settrace(None)

# #不会跟踪这次函数

# test(2)

#5.处理标准输出/输入

class Redirect:

    def __init__(self,stdout):

        self.stdout = stdout

    def write(self,s):

        self.stdout.write(str.lower(s)) #将输出内容转为小写处理

#重定向标准输出(包括print语句)

old_stodout = sys.stdout

sys.stdout = Redirect(sys.stdout)

print("PYTHON KENOWLEDGE")

print("FRISKT HUM/303226R")

#恢复标准输出

sys.stdout = old_stodout

print("MmmmmmmmmMMIII!")

#6.退出程序

'''

执行到主程序的末尾时,python解释器会自动退出,但是如果要中途退出程序

需要调用sys.exit函数,它带有一个可选的整数参数(参数为空默认0,0,代表正常退出)返回给调用它的程序

'''

print('hello')

sys.exit(0)      #没有错误正常退出

print('python')

#输出结果:hello

#注意:此处的sys.exit()并不是立即退出,而是引发一个SystemExit异常,

# 这意味着你可以在程序中捕获对sys.exit()的调用,代码如下

import sys

print('hello')

try:

    sys.exit

except SystemExit as ex:

    print('这次异常抛出了异常为:',ex)

print(1,2,3)

sys.exit(1)#不正常退出

print(1,2,3)

print(1,2,3)

print(1,2,3)

print(1,2,3)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值