Python 2.7 学习Python,艰苦的方式,比如17,我得到了一行但是

Python 2.7 学习Python,艰苦的方式,比如17,我得到了一行但是,python-2.7,Python 2.7,所以我在这一章,另一篇文章向我展示了如何将代码简化为更精简的版本 from sys import argv from os.path import exists script, from_file, to_file = argv (open(to_file, 'w').write(open(from_file).read())) 我在第6行的问题是,为什么我不能使用与open(to_file,'w')相同的格式来表示:open(from_file).read() 我可以在代码的这一部分使

所以我在这一章,另一篇文章向我展示了如何将代码简化为更精简的版本

from sys import argv

from os.path import exists

script, from_file, to_file = argv

(open(to_file, 'w').write(open(from_file).read()))
我在第6行的问题是,为什么我不能使用与
open(to_file,'w')
相同的格式来表示:
open(from_file).read()


我可以在代码的这一部分使用类似的
open(从_文件'r')
吗?为什么或为什么不?

如果您参考
open()
的文档,则打开模式是可选的,默认为只读:

打开(名称[,模式[,缓冲]])

[……] mode最常用的值是'r'用于读取,'w'用于写入(如果文件已经存在,则截断该文件),以及'a'用于追加(在某些Unix系统上,这意味着所有写入操作都会追加到文件的末尾,而不管当前查找位置如何)。如果省略模式,则默认为“r”


因此,您可以使用只读标志,但不必这样做,即
open(file,'r')
相当于
open(file)
如果您参考
open()
的文档,则打开模式是可选的,默认为只读:

打开(名称[,模式[,缓冲]])

[……] mode最常用的值是'r'用于读取,'w'用于写入(如果文件已经存在,则截断该文件),以及'a'用于追加(在某些Unix系统上,这意味着所有写入操作都会追加到文件的末尾,而不管当前查找位置如何)。如果省略模式,则默认为“r”

因此,您可以使用只读标志,但不必这样做,即
open(file,'r')
等同于
open(file)
您可以

(open(to_file, 'w').write(open(from_file, "r").read()))
是有效的,并且应该工作相同

open()
中的访问模式是可选的,如中所述。未指定时,它将为您添加“r”。引述如下

access_模式:access_模式确定文件打开的模式,即读、写、附加等。下表给出了可能值的完整列表。这是可选参数,默认文件访问模式为读取(r)

为了进一步分解这一行,函数
open()
基本上打开文件并返回
file
对象类型。然后获取返回的文件类型并立即调用其
write()
函数。此函数需要一个字符串,该字符串由
open(从_文件“r”)提供。read()
。这将读取整个文件并返回一个字符串。因此,最后,它打开一个文件并写入另一个文件的内容。

您可以

(open(to_file, 'w').write(open(from_file, "r").read()))
是有效的,并且应该工作相同

open()
中的访问模式是可选的,如中所述。未指定时,它将为您添加“r”。引述如下

access_模式:access_模式确定文件打开的模式,即读、写、附加等。下表给出了可能值的完整列表。这是可选参数,默认文件访问模式为读取(r)


为了进一步分解这一行,函数
open()
基本上打开文件并返回
file
对象类型。然后获取返回的文件类型并立即调用其
write()
函数。此函数需要一个字符串,该字符串由
open(从_文件“r”)提供。read()
。这将读取整个文件并返回一个字符串。因此,最后,它打开一个文件并写入另一个文件的内容。

您是否在问
open(something,'r')
open(something,'w')
之间有什么区别?您的问题描述不清楚。是否收到错误消息?这对我很管用
open(到_文件,'w')。write(打开(从_文件,'r')。read())
注意,我确实在正在读取的文件中包含了
'r'
。@Will,我的意思是完全取出“.read”部分,并用打开(从_文件,'r')旁边的“r”替换它,如下:open(从_文件,'r')。我想一个更好的问题是,如果.read部分已经是open(from_file)下的一个默认选项,那么为什么它仍然是必需的呢?如果有必要的话。啊,您需要
read()
,因为
open(filename)
返回一个文件句柄对象,而不是字符串。为了以字符串形式获取文件的内容,您必须调用
file
对象上的
read()
。@Will,再次感谢您帮助理解这一点。最后一个问题如果可以,为什么不需要关闭文件?我假设,显然是错误的,既然我们打开文件读取内容,然后替换它们,它需要关闭,但显然没有必要,为什么?我没有看到什么?再次感谢。你是在问
open(something,'r')
open(something,'w')
之间有什么区别吗?您的问题描述不清楚。是否收到错误消息?这对我很管用
open(到_文件,'w')。write(打开(从_文件,'r')。read())
注意,我确实在正在读取的文件中包含了
'r'
。@Will,我的意思是完全取出“.read”部分,并用打开(从_文件,'r')旁边的“r”替换它,如下:open(从_文件,'r')。我想一个更好的问题是,如果.read部分已经是open(from_file)下的一个默认选项,那么为什么它仍然是必需的呢?如果有必要的话。啊,您需要
read()
,因为
open(filename)
返回一个文件句柄对象,而不是字符串。为了以字符串形式获取文件的内容,您必须调用
file
对象上的
read()
。@Will,再次感谢您帮助理解这一点。最后一个问题如果可以,为什么不需要关闭文件?我假设,显然是错误的,既然我们打开文件读取内容,然后替换它们,它需要关闭,但显然没有必要,为什么?我没有看到什么?再次感谢,谢谢你的帮助