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

用的是普通用户

 

转载于:https://www.cnblogs.com/windysai/p/10480429.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值