17-写入文件
9.2.3 写入文件
Python允许你将内容写入文件,方式与使用 print()
函数将字符串“写”到屏幕上类似。但是,如果打开文件时用读模式,就不能写入文件。你需要以“写入纯文本模式”或“添加纯文本模式”打开该文件,简称为“写模式”和“添加模式”。
写模式将覆写原有的文件,就像你用一个新值覆写一个变量的值一样。将 'w'
作为第二个参数传递给 open()
,以写模式打开该文件。不同的是,添加模式将在已有文件的末尾添加文本。你可以认为这类似于向一个变量中的列表添加内容,而不是完全覆写该变量。将 'a'
作为第二个参数传递给 open()
,以添加模式打开该文件。
如果传递给 open()
的文件名不存在,则写模式和添加模式都会创建一个新的空文件。在读取或写入文件后,调用 close()
方法,然后才能再次打开该文件。
让我们整合这些概念。在交互式环境中输入以下代码:
>>> baconFile = open('bacon.txt', 'w')
>>> baconFile.write('Hello, world!\n')
13
>>> baconFile.close()
>>> baconFile = open('bacon.txt', 'a')
>>> baconFile.write('Bacon is not a vegetable.')
25
>>> baconFile.close()
>>> baconFile = open('bacon.txt')
>>> content = baconFile.read()
>>> baconFile.close()
>>> print(content)
Hello, world!
Bacon is not a vegetable.
首先,我们以写模式打开bacon.txt。因为还没有bacon.txt,Python就创建了一个。在打开的文件上调用 write()
,并向 write()
传入字符串参数 'Hello, world! \n'
,将字符串写入文件,并返回写入的字符个数,包括换行符。然后关闭该文件。
为了将文本添加到文件已有的内容后面,而不是取代我们刚刚写入的字符串,我们就以添加模式打开该文件。向该文件写入 'Bacon is not a vegetable.'
,并关闭它。最后,为了将文件的内容输出到屏幕上,我们以默认的读模式打开该文件,调用 read()
,将得到的内容保存在 content
中,关闭该文件,并输出 content
。
请注意, write()
方法不会像 print()
函数那样在字符串的末尾自动添加换行符,必须手动添加该字符。
从Python 3.6开始,还可以将 Path
对象而不是文件名字符串传递给 open()
函数。