1. 程式人生 > >python關於sys.argv列表的應用場景

python關於sys.argv列表的應用場景

文件是否存在 進一步 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列表的應用場景