zoukankan      html  css  js  c++  java
  • 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、结果展示

    用的是普通用户

  • 相关阅读:
    tf导出pb文件,以及如何使用pb文件
    word2vec入门理解的博客整理
    简单的RNN和BP多层网络之间的区别
    图像中用到的信息论中的一些概念公式
    raw文件转mha文件
    mha格式的CT体数据转为jpg切片
    在MySQL的表中增加一列
    ES7学习笔记(二)ES的集群原理
    MySQL中的幻读,你真的理解吗?
    ES7学习笔记(一)Elasticsearch的安装与启动
  • 原文地址:https://www.cnblogs.com/windysai/p/10480429.html
Copyright © 2011-2022 走看看