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% | ||||||||||||||||||||||||||||||||||||||||||||||||||

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM