今天继续分享python读写文件。
首先介绍一个新的函数open(),这个函数是干什么的呢?在python里面可以用open函数来打开文件。要用open函数打开一个文件,就是要向它传递一个字符串路径,表明希望打开的文化,这个既可以是绝对路径,也可以是相对路径。open函数返回的是一个File对象。
我们可以尝试一下,先用Notepad或TextEdit创建一个文本文件,名字就叫py.txt。输入Hello world!作为这个文本文件的内容,可以将它保存在你的用户文件夹中。然后,如果使用windows,在交互环境下输入以下代码:
helloFile = open('C:\\Users\\your_home_folder\\py.txt'
如果是在OS X的交互环境下输入以下代码:
helloFile = open('/Users/your_home_folder/py.txt')
请大家确认自己的计算机用户名取代your_home_folder。例如,我的用户名是 aswstyr,所以我在windows下输入'C:\\Users\\aswstyr\\hello.txt'。
这些命令都将以读取纯文本文件的模式打开文件,或简称为“读模式”。当文件 以读模式打开时,Python 只让你从文件中读取数据,你不能以任何方式写入或修改它。 在 Python 中打开文件时,读模式是默认的模式。但如果你不希望依赖于 Python 的默 认值,也可以明确指明该模式,向 open()传入字符串'r',作为第二个参数。所以open('/Users/aswstyr/py.txt', 'r')和 open('/Users/aswstyr/hello.txt')做的事情一样。
调用 open()将返回一个 File 对象。File 对象代表计算机中的一个文件,它只是 Python 中另一种类型的值,就像你已熟悉的列表和字典。在前面的例子中,你将 File 对象保存在 helloFile变量中。现在,当我们需要读取或写入该文件,就可以调用 helloFile变量中的 File对象的方法。
读写文件内容
既然有了一个 File 对象,就可以开始从它读取内容。如果你希望将整个文件的 内容读取为一个字符串值,就使用File 对象的read()方法。让我们继续使用保存在 helloFile 中的 py.txt File 对象。在交互式环境中输入以下代码:
>helloContent = helloFile.read()
> helloContent
'Hello world!'
如果你将文件的内容看成是单个大字符串,read()方法就返回保存在该文件中的 这个字符串。 或者,可以使用 readlines()方法,从该文件取得一个字符串的列表。列表中的 每个字符串就是文本中的每一行。例如,在 hello.txt 文件相同的目录下,创建一个 名为 sonnet.txt 的文件,并在其中写入以下文本:
When, in disgrace with fortune and men's eyes,
I all alone beweep my outcast state,
And trouble deaf heaven with my bootless cries,
And look upon myself and curse my fate,
当然,写什么内容你们定,我只是给你们举个例子
接下来确保用换行分开这 4 行。然后在交互式环境中输入以下代码:
>>> sonnetFile = open('sonnet.txt')
>>> sonnetFile.readlines()
[When, in disgrace with fortune and men's eyes,\n', ' I all alone beweep my
outcast state,\n', And trouble deaf heaven with my bootless cries,\n', And
look upon myself and curse my fate,']
请注意,每个字符串值都以一个换行字符\n 结束。除了文件的最后一行。与单 个大字符串相比,字符串的列表通常更容易处理。
今天就分享到这,学习编程一定要多加练习,要不很容易忘。晚安!