python函数sys,Python函数的组成部分

Python常用标准库之sys

sys模块主要是针对与Python解释器相关的变量和方法,不是主机操作系统。

创新互联公司"三网合一"的企业建站思路。企业可建设拥有电脑版、微信版、手机版的企业网站。实现跨屏营销,产品发布一步更新,电脑网络+移动网络一网打尽,满足企业的营销需求!创新互联公司具备承接各种类型的成都网站建设、成都网站设计项目的能力。经过十余年的努力的开拓,为不同行业的企事业单位提供了优质的服务,并获得了客户的一致好评。

导入方式: import sys

sys.argv是一个脚本执行参数列表,列表的第一个元素是脚本名称,从第二个元素开始才是真正的参数。

path是一个目录列表,供Python从中查找模块。在Python启动时,sys.path根据内建规则和PYTHONPATH变量进行初始化。sys.path的第一个元素通常是个空字符串,表示当前目录。

sys.path本质上是一个列表,可以进行append、insert、pop、remove等各种列表相关的操作,但通常都进行append操作,添加自己想要的查找路径。

stdin 用于所有的交互式输入(包括input()函数)。

stdout 用于print()的打印输出或者input()函数的提示符。

stderr 用于解释器自己的提示信息和错误信息。

简而言之,这三个属性就是操作系统的标准输入、输出和错误流,它们返回的都是一个“文件类型”对象,支持read()、write()和flush()等操作,就像用open()方法打开的文件对象那样!

当我们用 input('Please input something!') 时,事实上是先输出提示信息,然后捕获输入。 以下两组等价:

当我们 print(obj) 的时候,事实上是调用了 sys.stdout.write(obj+'\n') ,将内容打印到控制台(默认是显示器),然后追加一个换行符。以下两行等价:

默认情况下 sys.stdout 指向控制台。如果把文件对象赋值给 sys.stdout ,那么 print () 调用的就是文件对象的 write() 方法。

如果你还想同时在控制台打印的话,最好先将原始的控制台对象引用保存下来,向文件中打印之后再恢复 sys.stdout .

参考:

Python sys.path详解

这是两种加载py文件的方式:

1叫做直接运行

2把模块当作脚本来启动(注意:但是__name__的值为'main' )

直接启动是把xx.py文件,所在的目录放到了sys.path属性中。

模块启动是把你输入命令的目录(也就是当前路径),放到了sys.path属性中

下面可以看看例子:

假设我们项目的结构是这样的:

这样执行的话,打印sys.path可以看到sys.path的第一个目录就是运行的stat.py所在的目录,也就是activity目录

那如果我们用模块运行 python -m

这样运行的话sys.path的第一个值就是'', 也就是当前执行python的目录

如果我们想在stat.py 里面import activity目录上一个文件夹的其他模块是不可以的, 比如我想导入base.connection里面的db_mongo, 这是不可以的,为什么?因为sys.path 就是在activity目录,根目录statictis 没有在sys.path里面啊

这样会报错:

那自然我们就会想能否这样通过相对路径引入

然后执行 python activity/stat.py

这样还回报错,但是是另外一个报错:

这是因为, 如果我们直接执行py文件的话,是不可以使用相对引入的,否则就会报错 Attempted relative import in non-package

那如果我们用模块运行会怎样 python -m

报了另外一个错误

这是因为 ..base的时候已经出了顶级目录了,为什么?因为python -m 的时候,sys.path的第一个目录就是当前执行python的目录, 也就是 ~/vhost/statistics, 这个已经是顶级目录了, 还要..base的话就会超出,所以报错

这个时候,到底是使用直接启动,还是以模块的启动?目的就是把import的那个模块的路径放到sys.path中。

导入一个叫 mod1 的模块时,解释器先在当前目录中搜索名为 mod1.py 的文件。如果没有找到的话,接着会到 sys.path 变量中给出的目录列表中查找。 sys.path 变量的初始值来自如下:

默认情况下PYTHONPATH是空的, 然后进去看到sys.path是一个列表,包括有所有查找包的目录

下面我们给PYTHON加个目录

可以看到'/home/lidongwei/Desktop' 这个目录已经被加到sys.path了, 说明PYTHONPATH会加到sys.path

python中sys模块是干什么的

sys是与解释器相关信息的模块

sys.argv # 命令行参数List,第一个元素是程序本身路径

sys.exit(n) # 退出程序,正常退出时exit(0)

sys.version # 获取Python解释程序的版本信息

sys.maxint # 最大的Int值

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

sys.platform # 返回操作系统平台名称


网站标题:python函数sys,Python函数的组成部分
网页链接:http://hbruida.cn/article/hsssgd.html