python中sys模組之獲取引數

2021-09-24 10:36:04 字數 3083 閱讀 4396

sys模組:全稱system,指的是直譯器(os指的是作業系統)

常用操作,用於接收系統作業系統呼叫直譯器傳入的引數

1.sys.ar** #獲取指令碼傳遞的所有引數,返回乙個列表;列表中的所有元素均為指令碼傳遞的引數

sys.ar**[0] #獲取腳步傳遞的第乙個引數;固定為指令碼名稱

sys.ar**[1] #獲取腳步傳遞的第二個引數

可以用索引的方式獲得指令碼傳遞的引數

2.sys.version獲得直譯器的版本資訊,返回乙個字串

作用:根據python版本編寫符合不同版本的程式 使程式可相容

import sys

import os

print(sys.version)

執行:3.6.4 (default, aug 10 2018, 11:14:49)

[gcc 4.8.5 20150623 (red hat 4.8.5-11)]

也可以通過字串切片的特性得到直譯器版本號

import sys

import os

print(sys.version)

print(sys.version[:5])

執行:3.6.4 (default, aug 10 2018, 11:14:49)

[gcc 4.8.5 20150623 (red hat 4.8.5-11)]

3.6.4

3,sys.path #返回模組的搜尋路徑,初始化使用pythonpath環境變數

import os

import sys

print(sys.path)

執行:['/home/kiosk/pycharmprojects/20190523/20190524', '/home/kiosk/pycharmprojects/20190523', '/usr/local/python3/lib/python36.zip', '/usr/local/python3/lib/python3.6', '/usr/local/python3/lib/python3.6/lib-dynload', '/usr/local/python3/lib/python3.6/site-packages', '/usr/local/python3/lib/python3.6/site-packages/twisted-17.1.0-py3.6-linux-x86_64.egg', '/usr/local/python3/lib/python3.6/site-packages/automat-0.7.0-py3.6.egg', '/usr/local/python3/lib/python3.6/site-packages/constantly-15.1.0-py3.6.egg', '/usr/local/python3/lib/python3.6/site-packages/zope.inte***ce-4.5.0-py3.6-linux-x86_64.egg', '/usr/local/python3/lib/python3.6/site-packages/attrs-18.2.0-py3.6.egg']

4.sys.platform # 可以實現跨平台

import sys

import os

# print(sys.version)

# print(sys.version[:5])

# print(sys.path)

print(sys.platform)

if sys.platform == 'linux':

os.system('linux系統的命令')

else:

os.system('其他系統的命令')

應用練習:

需求:編寫指令碼:compare.py 在命令中執行python 檔案1 檔案2 輸出顯示兩個檔案的不同之處

import difflib

import sys

方法一:

parameter = sys.ar**

with open(parameter[1]) as f1,open (parameter[2]) as f2:

file1 = f1.read().splitlines(keepends=true)

file2 = f2.read().splitlines(keepends=true)

diff = difflib.differ()

diff_result = diff.compare(file1,file2)

print(''.join(list(diff_result)))

方法二:

if len(sys.ar**) !=3:

print(

"""usage: %s 比較的檔案1 比較的檔案2

"""%(sys.ar**[0])

)else:

filename1 = sys.ar**[1]

filename2 = sys.ar**[2]

try:

with open(filename1) as f1,open(filename2) as f2:

content1 = f1.read().splitlines(keepends=true)

content2 = f2.read().splitlines(keepends=true)

except exception as e:

print('比較錯誤,錯誤的原因',e)

d = difflib.htmldiff()

htmlcontent = d.make_file(content1,content2)

with open('different.html','w') as f:

f.write(htmlcontent)

執行結果:

[kiosk@foundation40 20190524]$ /usr/local/python3/bin/python3 compare.py /home/kiosk/file /home/kiosk/file1

hello

+ + mewfw4t

+ 4t5tr

+ fcdfbv

+ efr4

python常用模組之sys模組

用於提供對直譯器相關的操作 sys.argv 命令列引數list,第乙個元素是程式本身路徑 sys.exit n 退出程式,正常退出時exit 0 sys.version 獲取python解釋程式的版本資訊 sys.maxint 最大的int值 sys.path 返回模組的搜尋路徑,初始化時使用py...

Python常用模組之sys模組

sys模組功能多,我們這裡介紹一些比較實用的功能,相信你會喜歡的,和我一起走進python的模組吧!回到頂部 回到頂部 功能 在外部向程式內部傳遞引數 示例 sys.py usr bin env python importsys printsys.ar 0 print sys.ar 1 執行 pyt...

python基礎之模組之sys模組

sys模組的功能 sys是python中較為常用的乙個模組,他提供了對python指令碼執行時的環境的操作。sys功能 1 sys.argv 將python指令碼執行時的指令碼名以及引數作為乙個list,並輸出。2 sys.path 返回乙個list,該list為當前指令碼的path環境變數 pyt...