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

作者:渴望力量的哈士奇 时间:2021-03-31 01:38:50 

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列表

示例如下:

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 返回的是什么?

import sys

print(sys.argv)

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

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

import sys

print(sys.argv[0], sys.argv[1])

# >>> 接下来我们进入 Terminal 终端 利用 python 执行 该脚本文件,并传入 测试参数,结果如下图。

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

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

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模块使用教程详解

来源:https://blog.csdn.net/weixin_42250835/article/details/123649719

标签:Python,sys,模块
0
投稿

猜你喜欢

  • Python catplot函数自定义颜色的方法

    2021-01-29 16:25:01
  • python读取excel进行遍历/xlrd模块操作

    2022-11-09 18:44:51
  • Python Mysql数据库操作 Perl操作Mysql数据库

    2024-01-20 11:07:43
  • Python中dataclass库实例详解

    2023-11-30 02:14:35
  • python分布式环境下的限流器的示例

    2023-07-11 19:25:38
  • ASP连接Access数据库和SQL server数据库的方法

    2007-08-22 13:16:00
  • python同时遍历两个list用法说明

    2023-10-12 23:08:23
  • 跟老齐学Python之关于类的初步认识

    2022-11-04 15:49:36
  • python格式化字符串实例总结

    2023-09-01 04:36:11
  • 关于Python OS模块常用文件/目录函数详解

    2023-07-04 06:30:06
  • 怎样解决MySQL 5.0.16的乱码问题

    2008-10-13 12:47:00
  • MySQL性能优化的一些技巧帮助你的数据库

    2024-01-20 12:44:22
  • Go项目配置管理神器之viper的介绍与使用详解

    2023-09-17 01:05:52
  • asp模板解析类模块(支持if,function,loop及解析缓存)

    2008-08-11 13:06:00
  • tensorflow1.0学习之模型的保存与恢复(Saver)

    2021-06-03 16:57:20
  • 再谈CSS样式表书写风格

    2009-03-30 16:09:00
  • python使用socket创建tcp服务器和客户端

    2021-04-21 21:10:17
  • SqlServer数据库提示 “tempdb” 的日志已满 问题解决方案

    2024-01-28 10:39:47
  • TensorFlow2.0:张量的合并与分割实例

    2022-12-02 13:44:49
  • Python脚本实时处理log文件的方法

    2021-02-23 06:40:32
  • asp之家 网络编程 m.aspxhome.com