我有一个编写Python脚本的任务,"检测文件是否可读"。
我不知道应该运行哪些例外。我们假设输入文件是一个文本文件,扩展名为*.txt
我应该提出的例外是什么?我怀疑应该有多个。目前,我有:
with open('example_file.txt") as textfile:
if not textfile.lower().endswith('.txt'):
raise argparse.ArgumentTypeError(
'Not a text file! Argument filename must be of type *.txt')
return textfile
但是,它只检查文件扩展名。我还能检查什么? Python中文件I / O的标准是什么?
答案 0 :(得分:3)
检查文件是否存在:
import os.path
if os.path.exists('example_file.txt'):
print('it exists!')
除此之外,成功open
该文件将演示可读性。如果内置open
失败,则会引发IOError
异常。失败可能由多个原因引起,因此我们必须检查它是否因可读性而失败:
import errno
try:
textfile = open('example_file.txt', 'r')
textfile.close()
print("file is readable")
except IOError as e:
if e.errno == errno.EACCES:
print("file exists, but isn't readable")
elif e.errno == errno.ENOENT:
print("files isn't readable because it isn't there")
relevant section of the docs on file permissions.请注意,不建议在调用os.access
之前使用open
检查可读性。