python关于sys.argv列表的应用场景

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、结果展示

用的是普通用户

猜你喜欢

转载自www.cnblogs.com/windysai/p/10480429.html