天天看點

Python sys子產品

Python sys子產品

sys 子產品提供了許多函數和變量來處理 Python 運作時環境的不同部分.

處理指令行參數

sys.argv       #現從程式外部向程式傳遞參數[*],0代表程式本身

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time    : 2017/11/29 0029 11:31
# @Author  : ming
import sys
print(sys.argv)  
if len(sys.argv) > 1:
    print(sys.argv[0])
    print(sys.argv[1])
    print(sys.argv[2])
else:
    print("沒有傳遞參數")      
C:\Users\Administrator\PycharmProject\MyProject\myfunc>python ceshi.py arg1 arg2
['ceshi.py', 'arg1', 'arg2']  # 說明sys.argv 是一個包含參數的清單
ceshi.py #sys.argv[0] 代表腳本自身
arg1 # 第一個參數
arg2 # 第一個參數      

sys.path       #擷取指定子產品搜尋路徑的字元串集合,可以将寫好的子產品放在得到的某個路徑下,就可以在程式中import時正确找到

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time    : 2017/11/29 0029 11:31
# @Author  : ming
import sys
print(type(sys.path))
for i in sys.path:
    print(i)      
運作結果:
<class 'list'>  # 說面sys.path 是一個清單 該清單中包含所有py檔案可被搜尋的路徑或檔案夾,隻有在該目錄中的子產品或py檔案才可以被imporp導入
C:\Users\Administrator\PycharmProject\MyProject\myfunc
C:\Users\Administrator\PycharmProject\MyProject
C:\Users\Administrator\AppData\Local\Programs\Python\Python35\python35.zip
C:\Users\Administrator\AppData\Local\Programs\Python\Python35\DLLs
C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib
C:\Users\Administrator\AppData\Local\Programs\Python\Python35
C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-packages      

sys.version   #列印python版本

sys.platform  # 檢視系統版本

sys.getdefaultencoding()  # 擷取系統目前編碼

sys.getfilesystemencoding() # 擷取檔案系統使用編碼方式,Windows下傳回'mbcs',mac下傳回'utf-8'

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import sys

print(sys.version)  # 檢視平台版本
print(sys.platform)  # 檢視系統版本
print(sys.getdefaultencoding())  # 擷取系統目前編碼
print(sys.getfilesystemencoding())  # 擷取檔案系統使用編碼方式,Windows下傳回'mbcs',mac下傳回'utf-8'      
運作結果:
3.5.1 (v3.5.1:37a07cee5969, Dec  6 2015, 01:54:25) [MSC v.1900 64 bit (AMD64)]
win32
utf-8
mbcs      

sys.stdin   #标準IO流,如果需要更好地控制輸出,而print 不能滿足你的要求, 它們就是你所需要的. 你也可以替換它們, 這時候你就可以重定向輸出和輸入到其它裝置( device ), 或者以非标準的方式處理它們

sys.stdout

sys.stderr

制作進度條:  由于标準輸入 不會自動回車
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import sys, time

for i in range(51):
    sys.stdout.write("\r")
    sys.stdout.write("%s%% | %s" % (int(i / 50 * 100), i * "|"))
    sys.stdout.flush()
    time.sleep(0.05)      
運作結果: 動态的顯示以下内容
100% | ||||||||||||||||||||||||||||||||||||||||||||||||||      

作者:楊永明

出處:https://www.cnblogs.com/ming5218/

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接。