文件存在吗?可以读取吗?——os大法

2019-06-24  本文已影响0人  求余的小屋

昨天学到 os 模块中的两个函数
可以用来检查,使用的文件是否存在于当前路径,以及是否有读取权限
简要介绍用法,详细请参考python官方文档
如有错误,欢迎指出。
本人还是新手,望大佬包涵~

一、检查文件是否存在于当前路径

os.path.isfile(<filename>)

如果存在,返回True,反之False

二、检查当前文件是否具有读取权限

os.access(<filename>, os.R_OK)

如果具有该权限,返回True,反之False

三、例子

#! python2
import sys
import os

if len(sys.argv) == 2: 
    filename = sys.argv[1]
    if not os.path.isfile(filename): #如果,没有这个文件,则输出提示信息,并退出程序
        print "[-] " + filename + " does not exist."
        sys.exit()
    if not os.access(filename, os.R_OK): #如果文件不具有读取权限,则输出提示信息,退出程序
        print "[-] " + filename + " access denied."
        sys.exit()

    print "[+] Reading From: " + filename #以上两个条件都满足后,提示正在读取文件

else:
    print "[!] Useage " + str(sys.argv[0]) + " <filenam>" #如果没有输入脚本名称和文件,则提示使用方法

with open(filename, 'r') as f: #打开文件,并逐行读取,输出在屏幕上
    for line in f.readlines():
        print(line.strip('\n'))

四、总结

1. if not False :等价于 if True:

if not os.path.isfile(filename):

如果没有这个文件存在,则输出报错信息。
正所谓双重否定,表示肯定True。

上一篇下一篇

猜你喜欢

热点阅读