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