这是如何工作的:除了IOError为e:print(“No such file:{0.filename}”。format(e))

时间:2016-10-04 07:47:51

标签: python python-3.x

使用相关表达式的代码:

def read_file(self,file_name):
        try:
            with open(file_name,'r') as file:
                data=file.read()
                return data.split()

        except IOError as e:
            print("Could not read file:{0.filename}".format(e))
            sys.exit()

这是如何工作的? {0.filename}.format(e)的含义是什么?为什么我们使用{0.filename}而非{1.filename}

1 个答案:

答案 0 :(得分:2)

这实质上意味着获取位置0的位置参数(在format(e)中,e是零位置arg)并获取在其上定义的filename属性:< / p>

print("No such file: {0.filename}".format(e))

类似于:

print("No such file: {0}".format(e.filename))

它不是1.filename,因为格式没有使用位置1的参数调用,另一个例子可能会帮助你更多:

print("{0}{1.filename}".format("No such File: ", e))

此处{0}会抓取"No such File: "{1.filename}会抓取e.filename并将其添加到结果字符串中。