Python~sys模块总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37579123/article/details/83904182

Python~sys模块总结

1.sys.argv:实现从程序外部向程序内部传递参数

import sys

 

print (sys.argv)

print ("取第一个值为:",end="")

print (sys.argv[0])

 

 

 

 

 

 

2.sys.exit():退出程序运行

import sys

 

for i in range(5):

    print (i)

    if i==2:

        "当i符合条件时,结束程序运行"

        sys.exit()

 

 

 

 

 

 

 

3.sys.path:获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到

>>> import sys

>>> sys.path

['', 'E:\\', 'C:\\Users\\zhigang\\Desktop', 'D:\\Python3\\python36.zip', 'D:\\Python3\\DLLs', 'D:\\Python3\\lib', 'D:\\Python3', 'D:\\Python3\\lib\\site-packages']

 

sys.path.append("自定义模块路径")

 

 

 

 

 

4.sys.platform:获取当前系统平台

>>> import sys

>>> sys.platform

'win32'

 

 

 

5.sys.getfilesystemencoding():获取文件系统使用编码方式

>>> sys.getfilesystemencoding()

'utf-8'

 

 

 

6.sys.getdefaultencoding(): 获取系统当前编码

>>> sys.getdefaultencoding()

'utf-8'

 

 

 

7.sys.setdefaultencoding():设置系统默认编码

py2中的用法:

import sys

 

print (sys.getdefaultencoding())

reload(sys)

sys.setdefaultencoding("gbk")

print (sys.getdefaultencoding())

 

py3运行以上代码会报错:

解决办法:

import sys,importlib

print (sys.getdefaultencoding())

importlib.reload(sys)

但py3中已遗弃sys.setdefaultencoding(),仍会报错:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8.sys.stdin,sys.stdout,sys.stderr

sys.stdin:标准化输入,等同于input

使用sys.stdin.readline()可以实现标准输入,其中默认输入的格式是字符串,如果是int,float类型则需要强制转换

import sys

 

content=sys.stdin.readline()

print (content)

 

 

 

 

 

sys.stdout和sys.stderr:标准输出和标准错误输出,同print等价

import sys

 

sys.stdout.write("hello world!")

sys.stderr.write("hello world!")   #再pycharm中显示为红色字体

 

 

 

 

9.重定向到文件

import sys

 

fp=open("test.txt","w")

sys.stdout=fp

print ("光荣之路")

 

 

 

 

10.同时重定向到控制台和文件

import sys

 

class Redirection(object):

 

    def __init__(self, content):

        self.content = content

        self.console=sys.stdout

 

    def to_console(self):

        "标准输出重定向至控制台"

        sys.stdout=self.console

        print (self.content)

 

    def to_file(self,file_path="out.txt"):

        "标准输出重定向至文件"

        fp = open(file_path, "w")

        sys.stdout = fp

        print(self.content)

 

if __name__=="__main__":

    content="光荣之路"

    rs=Redirection(content)

    rs.to_console()

    rs.to_file()

猜你喜欢

转载自blog.csdn.net/weixin_37579123/article/details/83904182