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