2

当你这样做时:

file = open("my file","wt")

file = open("my file" , "rt")

它们都创建了我们使用文件方法的文件对象。但他们是否在创建不同的文件对象?如果他们正在创建不同的文件对象,是否可以公平地说“wt”是可变的,而“rt”是不可变的?

4

2 回答 2

2

不,这样说不公平。您正在创建相同标准file类型的实例,它代理对操作系统的文件操作调用。模式定义了操作系统将允许您做什么。

使用相同的文件名或不同的文件名都没有关系;操作系统不在乎,Python 也不在乎;打开的文件对象是不同的。

Python 对象本身是不可变的;您不能在事后更改模式、文件名或其他属性。

请注意,通过添加+模式,您可以读取写入文件对象;w+将首先截断文件,而r+不会。

于 2013-06-15T21:04:48.473 回答
0

在操作系统级别,它们将被创建为两个不同的文件描述符。它们(可能)指向 VFS/缓存中的相同数据,但可以独立操作。

于 2013-06-15T21:04:41.517 回答