python sys模块

sys模块提供了一系列有关Python运行环境的变量和函数。

常见用法

sys.argv

可以用sys.argv获取当前正在执行的命令行参数的参数列表(list)。

变量解释

sys.argv[0]当前程序名

sys.argv[1]第一个参数

sys.argv[0]第二个参数

#!/usr/bin/env python
# coding: utf-8
__author__ = 'www.py3study.com'

import sys

# 获取脚本名字
print('脚本名: %s' %(sys.argv[0]))
# 获取参数列表
print('参数列表:')
for i in sys.argv:
    print(i)
# 统计参数个数
print('参数个数: %s'%(len(sys.argv)-1))

在cmd中执行

E:\python_script\day5\test4>python test.py 1 2 3

执行输出

脚本名: test.py

参数列表:

test.py

1

2

3

参数个数: 3

sys.path

返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值

print(sys.path)

在cmd中执行

E:\python_script\day5\test4>python test.py

执行输出

['E:\\python_script\\day5\\test4', 'C:\\Program Files\\Python36\\python36.zip', 'C:\\Program Files\\Python36\\DLLs', 'C:\\Program Files\\Python36\\lib', 'C:\\Progra

m Files\\Python36', 'C:\\Program Files\\Python36\\lib\\site-packages']

这个一般在导入模块的时候,需要把项目根目录追加到搜索路径中

比如test.py的根目录为day5,需要添加环境变量

import sys,os

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
print(BASE_DIR)
#添加系统环境变量
sys.path.append(BASE_DIR)
print(sys.path)

执行输出

E:\python_script\day5

['E:\\python_script\\day5\\test4', 'E:\\python_script', 'C:\\Program Files\\Python36\\python36.zip', 'C:\\Program Files\\Python36\\DLLs', 'C:\\Program Files\\Python36\\lib', 'C:\\Program Files\\Python36', 'C:\\Program Files\\Python36\\lib\\site-packages', 'E:\\python_script\\day5']

常用的就是以上2个方法

下面介绍几个其他方法

sys.platform

获取当前执行环境的平台,如win32表示是Windows系统,linux2表示是linux平台

import sys
print(sys.platform)

执行输出 win32

sys.exit(n)

调用sys.exit(n)可以中途退出程序,当参数非0时,会引发一个SystemExit异常,从而可以在主程序中捕获该异常。

import sys

print('running...')

try:
    sys.exit(1)
except SystemExit:
    print('SystemExit exit 1')

print('exited')

执行输出

running...

SystemExit exit 1

exited

sys.version

获取Python解释程序的版本信息

import sys
print(sys.version)

执行输出

3.6.2 (v3.6.2:5fd33b5, Jul  8 2017, 04:57:36) [MSC v.1900 64 bit (AMD64)]

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏喔家ArchiSelf

回顾Erlang简要

世界是并行的,Erlang程序反应了一种思考和交流的方式,个体通过发送消息进行交流,如果有个体死亡,其他个体会注意到。

12940
来自专栏大内老A

ASP.NET Core的配置(4):多样性的配置来源[下篇]

我们在上篇和中篇对配置模型中默认提供的各种ConfigurationProvider进行了深入详尽的介绍,如果它们依然不能满足项目中的配置需求,我们可以还可以通...

21160
来自专栏林德熙的博客

dotnet Framework 源代码 类库的意思

System 命名空间包含基本类和基类,这些类定义常用的值和引用数据类型、事件和事件处理程序、接口、属性和异常处理。

17220
来自专栏软件工程师成长笔记

IE、FireFox、Chrome浏览器中关于URL传参中文乱码,解决兼容性问题!

前台用url传值中文,后台用request.getParameter接收参数。在Firefox,Chrome等浏览器中没有问题。但用IE浏览器就又会出现参数中文...

86720
来自专栏pangguoming

php_curl.dll libssh2.dll 始终无法加载的原因 及解决办法

在StackOverflow得到最终原因及解决办法 http://stackoverflow.com/questions/16424117/php-unable...

34560
来自专栏MasiMaro 的技术博文

duilib基本框架

最近我一个同学在项目中使用到了duilib框架,但是之前并没有接触过,他与我讨论这方面的内容,看着官方给出的精美的例子,我对这个库有了很大的兴趣,我自己也是初学...

42610
来自专栏林德熙的博客

WPF 插拔触摸设备触摸失效

最近使用 WPF 程序,在不停插拔触摸设备会让 WPF 程序触摸失效。通过分析 WPF 源代码可以找到 WPF 触摸失效的原因。

23110
来自专栏ASP.NETCore

通过修改CoreCLR中的ClrHost实现自托管程序

上一篇我们讲了如何在windows和Linux上编译CoreClr的问题 虽然文章使用的是windows 10 (Bash)环境,但是也可以做为ubuntu环境...

17330
来自专栏前端新视界

Framework7 索引列表插件的异步加载实现

前言 Framework7 作为移动端的开发框架的优良之处已经无需多言。现在已经有了 React 和 Vue 版本,之前在项目中用过 F7 + vue 的开发方...

27390
来自专栏林德熙的博客

C# powshell 调用

现在的 Powershell 还不支持 dotnet core 的库,所以只能创建一个 dotnet framework 的项目。

12610

扫码关注云+社区

领取腾讯云代金券