1. 程式人生 > >Python~sys模組總結

Python~sys模組總結

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()