python - open(file, "wt"或 "rt") 是不同的对象吗?

标签 python file-io immutability mutable

当你这样做时:

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

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

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

最佳答案

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

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

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

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

关于python - open(file, "wt"或 "rt") 是不同的对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17127853/

相关文章:

java - 这是对 Java 中字符串不变性的妥协吗?

python - 递归函数-Collat​​z

python - 删除用户帐户的简单方法?

java - Java中的Web日志分析

python - 为什么 python 字符串和元组是不可变的?

javascript - 如何在 ImmutableJS 中存储和更新深层嵌套结构

python - 遍历重新获取的元素列表

python - .set_function ---- 是这个方法还是什么?

scala - 在Scala中,如何在满足条件后立即停止从文件中读取行?

linux - 在 ADA 中打开文件时出现段错误