sys包

本文深入解析Python的sys模块,涵盖sys.argv、sys.platform、sys.exit等关键函数的使用方法及应用场景,适合Python开发者掌握核心系统操作技巧。

首先,我们利用import语句 输入 sys模块。基本上,这句语句告诉Python,我们想要使用这个模块。sys模块包含了与Python解释器和它的环境有关的函数。

当Python执行import sys语句的时候,它在sys.path变量中所列目录中寻找sys.py模块。如果找到了这个文件,这个模块的主块中的语句将被运行,然后这个模块将能够被你 使用 。注意,初始化过程仅在我们 第一次 输入模块的时候进行。另外,“sys”是“system”的缩写。


Sys模块函数之多,我只能选取自己认为比较实用的一些函数列在此处。借马云找员工的说法,”找最合适的而不是最天才的”,这句话,我个人觉得在很多方面都能适应,学习也不在话下。Sys模块功能的确很多,但我们应该将重点放在那些功能才是最适合我们的,为此,我列的这些函数,就是我认为比较适合我以后开发的函数。

(1)sys.argv
很多人会想,我如何给我的程序在外部传递参数呢?这个,就可以实现。如:
Tesy.py

Import sys
Print sys.argv[number]

一般情况下,number为0是这个脚本的名字,1,2…则为命令行下传递的参数.如:
Test.py脚本内容:

import sys
 
print sys.argv[0]
print sys.argv[1]
print sys.argv[2]
print sys.argv[3]


那么

[root@databak scripts]# python test.py arg1 arg2 arg3
test.py
arg1
arg2
arg3


看到,对应的关系了吗?
sys模块中的argv变量通过使用点号指明——sys.argv——这种方法的一个优势是这个名称不会与任何在你的程序中使用的argv变量冲突。另外,它也清晰地表明了这个名称是sys模块的一部分。

sys.argv变量是一个字符串的 列表 (列表会在后面的章节详细解释)。特别地,sys.argv包含了 命令行参数 的列表,即使用命令行传递给你的程序的参数。

这里,当我们执行python using_sys.py we are arguments的时候,我们使用python命令运行using_sys.py模块,后面跟着的内容被作为参数传递给程序。Python为我们把它存储在sys.argv变量中。

记住,脚本的名称总是sys.argv列表的第一个参数。所以,在这里,'using_sys.py'是sys.argv[0]、'we'是sys.argv[1]、'are'是sys.argv[2]以及'arguments'是sys.argv[3]。注意,Python从0开始计数,而非从1开始。


(2)sys.platform
大家都知道,当今的程序比较流行的是跨平台。简单的说就是这段程序既可以在windows下,换到linux下也可以不加修改的运行起来,听起来就不错。所以,这个函数就可以派上用场了。
假设,我们想实现一个清除终端,linux下用clear, windows下用cls

Ostype=sys.platform()
If ostype==”linux” or ostype==”linux2”:
  Cmd=”clear”
Else:
  Cmd=”cls”

(3) sys.exit(n)
执行至主程序的末尾时,解释器会自动退出. 但是如果需要中途退出程序, 你可以调用sys.exit 函数, 它带有一个可选的整数参数返回给调用它的程序. 这意味着你可以在主程序中捕获对sys.exit 的调用。(注:0是正常退出,其他为不正常,可抛异常事件供捕获!)
sys.exit从python程序中退出,将会产生一个systemExit异常,可以为此做些清除除理的工作。这个可选参数默认正常退出状态是0,以数值为参数的范围为:0-127。其他的数值为非正常退出,还有另一种类型,在这里展现的是strings对象类型。

(4)sys.path
大家对模块都有一定了解吧?大家在使用模块的某一个功能前,是不是需要导入呢?答案是需要。那import,__import__命令就不用提干嘛的了吧。那大家在执行import module_name的时候,python内部发生了什么呢?简单的说,就是搜索module_name。根据sys.path的路径来搜索module.name
>>> sys.path
['', '/usr/local/lib/python24.zip', '/usr/local/lib/python2.4', '/usr/local/lib/python2.4/plat-freebsd4', '/usr/local/lib/python2.4/lib-tk', '/usr/local/lib/python2.4/lib-dynload', '/usr/local/lib/python2.4/site-packages']
大家以后写好的模块就可以放到上面的某一个目录下,便可以正确搜索到了。当然大家也可以添加自己的模块路径。Sys.path.append(“mine module path”).

sys.path包含输入模块的目录名列表。我们可以观察到sys.path的第一个字符串是空的——这个空的字符串表示当前目录也是sys.path的一部分,这与PYTHONPATH环境变量是相同的。这意味着你可以直接输入位于当前目录的模块。否则,你得把你的模块放在sys.path所列的目录之一。首先,我们利用import语句 输入 sys模块。基本上,这句语句告诉Python,我们想要使用这个模块。sys模块包含了与Python解释器和它的环境有关的函数。

(5)sys.modules
This is a dictionary that maps module names to modules which have already been loaded. This can be manipulated to force reloading of modules and other tricks.
Python.org手册里已经说的很明白了。
For names in sys.modules.keys():
If names != ’sys’:
    ……
(6)sys.stdin,sys.stdout,sys.stderr
stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们


当Python执行import sys语句的时候,它在sys.path变量中所列目录中寻找sys.py模块。如果找到了这个文件,这个模块的主块中的语句将被运行,然后这个模块将能够被你 使用 。注意,初始化过程仅在我们 第一次 输入模块的时候进行。另外,“sys”是“system”的缩写。

sys模块中的argv变量通过使用点号指明——sys.argv——这种方法的一个优势是这个名称不会与任何在你的程序中使用的argv变量冲突。另外,它也清晰地表明了这个名称是sys模块的一部分。


sys.argv变量是一个字符串的 列表 (列表会在后面的章节详细解释)。特别地,sys.argv包含了 命令行参数 的列表,即使用命令行传递给你的程序的参数。


如果你使用IDE编写运行这些程序,请在菜单里寻找一个指定程序的命令行参数的方法。


这里,当我们执行python using_sys.py we are arguments的时候,我们使用python命令运行using_sys.py模块,后面跟着的内容被作为参数传递给程序。Python为我们把它存储在sys.argv变量中。


记住,脚本的名称总是sys.argv列表的第一个参数。所以,在这里,'using_sys.py'是sys.argv[0]、'we'是sys.argv[1]、'are'是sys.argv[2]以及'arguments'是sys.argv[3]。注意,Python从0开始计数,而非从1开始。


sys.path包含输入模块的目录名列表。我们可以观察到sys.path的第一个字符串是空的——这个空的字符串表示当前目录也是sys.path的一部分,这与PYTHONPATH环境变量是相同的。这意味着你可以直接输入位于当前目录的模块。否则,你得把你的模块放在sys.path所列的目录之一。

原文:https://blog.youkuaiyun.com/u013203733/article/details/72540075 
版权声明:本文为博主原创文章,转载请附上博文链接!

<think>好的,用户想要解锁荣耀Play手机的Bootloader(BL)。首先,我需要回顾一下相关的信息。根据用户提供的引用内容,尤其是引用[1]和[2],里面提到了华为荣耀9解锁BL的步骤以及荣耀Play系列手机的一键解锁工具箱。不过要注意的是,华为和荣耀手机近年来可能调整了解锁政策,需要确认最新的方法是否有效。 首先,Bootloader解锁通常需要获取官方的解锁码,但华为在2018年停止提供官方解锁码服务,这可能意味着用户需要寻找其他途径。引用中提到的项目地址可能包含相关工具或教程,但需要用户自行访问查看是否可靠。另外,引用[2]提到了一键解锁平台工具箱,可能是指第三方工具,但使用这些工具存在风险,比如变砖或安全漏洞。 接下来,我需要整理出步骤:1. 准备工作,如备份数据、开启开发者选项和OEM解锁;2. 申请解锁码,可能通过官方渠道(如果可用)或第三方工具;3. 使用解锁码通过Fastboot命令解锁。需要注意的是,解锁会清除数据,且可能影响保修。 同时,用户可能需要了解相关风险,比如操作失败导致设备无法启动,或者第三方工具的安全性。此外,解锁后如何重新上锁也是需要考虑的,但引用中没有提到这部分内容,可能需要进一步研究。 最后,生成相关问题时要围绕解锁BL的后续步骤、风险、替代方案和保修影响等方面,帮助用户全面了解情况。</think>### 解锁荣耀Play手机Bootloader步骤 1. **准备工作** - **备份数据**:解锁BL会清除手机数据,请提前备份重要文件[^1]。 - **开启开发者选项**:进入手机设置→关于手机→连续点击“版本号”7次,激活开发者选项。 - **启用OEM解锁**:在开发者选项中开启“OEM解锁”和“USB调试”功能[^2]。 2. **获取BL解锁码** - 华为已停止官方解锁码服务,需通过第三方工具或平台获取。例如,引用[1]提到的项目地址可能提供相关资源(需自行验证安全性): ``` 项目地址: https://gitcode.com/Resource-Bundle-Collection/2993a ``` - 部分第三方工具箱(如引用[2]中的“一键解锁平台”)可能支持荣耀Play系列,但需注意工具来源的可靠性。 3. **通过Fastboot解锁** - 连接手机至电脑,进入Fastboot模式(关机后按住“音量下+电源键”)。 - 使用ADB命令执行解锁: ```bash fastboot oem unlock [解锁码] ``` - 完成后重启设备,BL状态将显示为“已解锁”。 --- ### 注意事项 - **风险提示**:第三方工具可能导致系统异常(如变砖)或隐私泄露,操作前需评估风险[^1]。 - **保修影响**:解锁BL后,官方保修可能失效。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值