脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python学习之sys模块使用教程详解

Python学习之sys模块使用教程详解

2022-11-10 10:49渴望力量的哈士奇 Python

sys模块 与 os包一样,也是对系统资源进行调用。功能同样也是非常丰富。本文将对sys模块的一些简单且常用的函数进行介绍,感兴趣的可以学习一下

sys模块 与 os包一样,也是对系统资源进行调用。功能同样也是非常丰富,接下来我们会对 sys模块的一些简单且常用的函数进行介绍,主要针对一些非功能性的函数与属性来认识一些不太常见的 Python 背后的事件。

sys 中的常用方法

函数名 参数 介绍 举例 返回值
modules(属性) 将Python启动时加载的模块集合起来并返回一个列表 sys.modules 列表
path(属性) 返回当前Py的环境路径(当前py环境可以导入内置、第三方包与函数的所在路径) sys.path 列表
exit(函数) arg 退出程序(执行十行代码,若在第二行插入sys.exit,则后面的代码不会执行) sys.exit(0)
getdefaultencoding 获取当前系统级别的编码格式(比如 utf-8) sys.getdefaultencoding() 字符串
platform(函数) 获取当前系统平台(如windows、Mac、linux) sys.platform() 字符串
version(属性) 获取当前 Python 的版本 sys.version 字符串
argv(属性) *args 获取程序外部的参数,返回值是一个列表,实际开发中很常用的一个功能 sys.argv 列表

示例如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import sys
 
 
modules = sys.modules       # 将 sys 模块的 modules 属性 赋值给 modules 并打印输出 Python启动时加载的模块集合
print(modules)
 
# sys.exit(0)               # 取消注释该行代码,下方所有的代码将不再执行
 
path = sys.path
print(path)                 # 将 sys 模块的 path 属性 赋值给 path 并打印输出 python 环境可以导入内置、第三方包与函数的所在路径
 
code = sys.getdefaultencoding()     # 将 sys 模块 的 getdefaultencoding()函数 赋值给 code 并打印输出当前系统的编码[utf-8]
print(code)
 
# >>> 执行结果如下:
# >>> utf-8
 
print(sys.platform)         # 获取当前系统平台(如windows、Mac、linux)
 
# >>> 执行结果如下:
# >>> darwin
 
print(sys.version)          # 获取当前 Python 的版本
 
# >>> 执行结果如下:
# >>> 3.8.7 (v3.8.7:6503f05dd5, Dec 21 2020, 12:45:15)
# >>> [Clang 6.0 (clang-600.0.57)]

接下来的 sys.argv 可要好好说一说了。上文我们提到 argv 是获取程序外部的参数,返回值是一个列表。

说实话我一直在 python 解释器、idea 运行,试图从结果发现它的用途,然而结果一直都是没结果,也在网上查了许多资料,大部分都是转裁和复制的。给的都是简明python教程上那个一长串代码的例子,说看了就明白了,可我看得晕头转向的还是没真正明白,只知道 sys.argv[0] 表示当前脚本本身文件路径的该脚本文件。后来经过大量努力,多方求教才真正明悟了,谨以记录和分享,希望能从另一个角度给同在求索过程中的同学一点启发。

sys.argv 其实就是一个从程序外部获取参数 的桥梁,这里所说的 外部 很关键,所以那些试图从代码来说明它作用的解释一直没看明白。因为我们需要先在终端执行脚本, 并从外部传入参数(可以是多个),所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能用[ ]提取其中的元素。其第一个元素是程序本身,随后才依次是外部传入的参数。

我们先来看一下 sys.argv 返回的是什么?

?
1
2
3
4
5
6
7
8
9
import sys
 
 
print(sys.argv)
 
# >>> 执行结果如下:
# >>> ['/Users/username/PycharmProjects/XXXXX/XXXXX/animal/package_sys.py']
# >>> 从执行结果可以看出 其输出的就是当前路径下的当前脚本本身,也就可以理解为 'sys.argv' 其实就是运行自身的脚本文件
# >>> 我们从 '外部' 运行该脚本文件的时候,需要传入参数(可以是多个)

接下来我们将上面的代码改为如下:

?
1
2
3
4
5
6
import sys
 
 
print(sys.argv[0], sys.argv[1])
 
# >>> 接下来我们进入 Terminal 终端 利用 python 执行 该脚本文件,并传入 测试参数,结果如下图。

Python学习之sys模块使用教程详解

为了更好的 演示 sys.argv 属性,我们将上文演示的 sys 常用的函数与属性进行一下修改。示例如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import sys
 
command = sys.argv[1]
if command == 'modules':
    modules = sys.modules
    print(modules)
elif command == 'path':
    path = sys.path
    print(path)
elif command == 'encoding':
    code = sys.getdefaultencoding()
    print(code)
elif command == 'platform':
    print(sys.platform)
elif command == 'version':
    print(sys.version)
else:
    print('该命令未识别')

然后在 Terminal 终端 执行该脚本,如下图:

Python学习之sys模块使用教程详解

到此这篇关于Python学习之sys模块使用教程详解的文章就介绍到这了,更多相关Python sys模块内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_42250835/article/details/123649719

延伸 · 阅读

精彩推荐
  • PythonPython import自定义模块方法

    Python import自定义模块方法

    python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径。下面给大家介绍python import自定义模块方法,需要的的朋友参考...

    ohword6652019-11-19
  • PythonPython 制作 Gif 生成工具,斗图再也不会输啦

    Python 制作 Gif 生成工具,斗图再也不会输啦

    在当前无表情包不会聊天的时代,怎么也不能输在表情包数量不足上啊,今天咱们就来制作一个 gif 生成工具,用来制作表情包也太好用啦!...

    萝卜大杂烩6882021-10-29
  • Python一文教会你pandas plot各种绘图

    一文教会你pandas plot各种绘图

    这篇文章主要给大家介绍了关于pandas plot各种绘图的相关资料,文中通过图文以及实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值...

    Buckletime9452022-10-23
  • Pythonpython中对正则表达式re包的简单引用方式

    python中对正则表达式re包的简单引用方式

    这篇文章主要介绍了python中对正则表达式re包的简单引用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...

    solitary_w11412022-09-16
  • PythonPython列表和元组的定义与使用操作示例

    Python列表和元组的定义与使用操作示例

    这篇文章主要介绍了Python列表和元组的定义与使用操作,结合实例形式分析了Python中列表和元组的功能、区别、定义及使用方法,需要的朋友可以参考下...

    坏蛋是我3262020-11-28
  • PythonPython3使用pandas模块读写excel操作示例

    Python3使用pandas模块读写excel操作示例

    这篇文章主要介绍了Python3使用pandas模块读写excel操作,简单讲述了pandas的功能、并结合实例形式分析了Python3使用pandas模块进行Excel文件的读取与写入相关操作...

    _compiling15022021-03-12
  • PythonDjango静态文件配置request对象方法ORM操作讲解

    Django静态文件配置request对象方法ORM操作讲解

    这篇文章主要为大家介绍了Django静态文件配置request对象方法ORM操作,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...

    爱新觉罗吉星5172022-09-02
  • Python用python打印菱形的实操方法和代码

    用python打印菱形的实操方法和代码

    在本篇文章里小编给大家分享了关于用python打印菱形的实操方法和代码,对此有需要的朋友们可以学习下。...

    脚本之家10412021-07-21