gpt4 book ai didi

python - 如何读取多个文件并进行错误检查?

转载 作者:行者123 更新时间:2023-12-01 05:16:48 24 4
gpt4 key购买 nike

我有一个读取多个文件的函数。像这样:

try:
a = open("1.txt", "r")
b = open("2.txt", "r")
c = open("3.txt", "r")
except IOError:
print("File {:s} failed".format(a, b or c))

我希望能够看到哪个文件在读取过程中失败。我可以以某种方式指定指定文件的 IOError 吗?我的意思是,如果 IOError 出现在文件 a 中,则执行“command1”,如果出现在文件 b 中,则执行“command2”等等?

最佳答案

IOError 异常是 OSError exception 的别名。 ,它有一个 filename 属性。您可以使用它来根据失败的文件切换行为:

try:
a = open("1.txt", "r")
b = open("2.txt", "r")
c = open("3.txt", "r")
except OSError as error:
print("File {:s} failed".format(error.filename))

我使用了名称OSErrorIOError 已弃用,仅为了向后兼容而保留,请参阅 PEP 3151 .

演示:

>>> try:
... open('Nonesuch.txt')
... except OSError as error:
... print('File {:s} failed'.format(error.filename))
...
File Nonesuch.txt failed

请注意,是 open() 调用引发了异常,因此未进行任何赋值。由于可以从多个位置(包括列表)引用文件对象,因此无法将文件对象或文件名映射回您要为其分配的名称。如果您想知道文件对象将绑定(bind)到 abc 中的哪一个,则必须创建自己的映射:

filenames = {'1.txt': 'a', '2.txt': 'b', '3.txt': 'c'}
print("File {} failed".format(filenames[error.filename]))

关于python - 如何读取多个文件并进行错误检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23031074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com