python關於sys.argv列表的應用場景
阿新 • • 發佈:2019-03-06
文件是否存在 進一步 pri 更多 -- 場景 alt 判斷 def
python關於sys.argv列表的應用場景
1、需求很簡單:
使用 sys.argv 獲取命令行參數(即要判斷的文件名),然後判斷文件是否存在,文件存在再進一步判斷是否有讀權限
2、分析:
(1)filename:存儲命令行參數,通過 sys.argv[1] 獲取文件的名稱,但存在一個異常需要考慮到:如果用戶直接運行我們的程序,沒有傳遞任何命令行參數,那麽訪問 sys.argv[1] 將會出現索引越界的錯誤
解決:在訪問sys.argv 之前添加一個空字符串(sys.argv.append(""))
(2)判斷文件是否存在或文件是否有讀權限都用到os模塊
判斷文件是否存在: 使用 os.path.isfile 函數
判斷文件是否有讀的權限:使用 os.access 函數。 access() 格式如下:
os.access(path, mode);
-
path -- 要用來檢測是否有訪問權限的路徑。
-
mode -- mode為F_OK,測試存在的路徑,或者它可以是包含R_OK, W_OK和X_OK或者R_OK, W_OK和X_OK其中之一或者更多。
- os.F_OK: 測試path是否存在。
- os.R_OK: 測試path是否可讀。
- os.W_OK:測試path是否可寫。
- os.X_OK: 測試path是否可執行。
3、具體代碼:
1 #!/usr/bin/python 2 3 import os 4 import sys 5 6 def main(): 7 sys.argv.append("") 8 filename = sys.argv[1] 9 if not os.path.isfile(filename): 10 raise SystemExit(filename + ‘ does not exists‘) 11 elif not os.access(filename, os.R_OK):12 raise SystemExit(filename + ‘ is not accessible‘) 13 else: 14 print (filename + ‘ is accessible‘) 15 16 if __name__ == ‘__main__‘: 17 main()
4、結果展示
用的是普通用戶
python關於sys.argv列表的應用場景