1基础知识
1.1文件读写
文件与文件路径
文件有两个关键属性:文件名和路径。文件名中的最后一个句点之后的部分被称为文件的“扩展名”,它指明了文件的类型。路径指明了文件在计算机上的位置。在Windows中,路径书写使用倒斜杠(\)作为文件夹之间的分隔符,而OS X和Linux中,则使用正斜杠(/)作为路径分隔符。
文件的类型
文件包括两个类型:文本文件和二进制文件。一个文件可以用“文本文件方式”和“二进制文件方式”打开,但是打开后的操作不同。字符串与字节流
文件的打开和关闭
Python中,打开文件使用open()函数,其格式如下是:
<变量名> = open(<文件名>, <打开模式>)
文件名是一个字符串路径,表明希望打开的文件。可以是文件的实际名字,也可以是包含完整路径的名字。open()函数返回一个File对象,代表计算机中的一个文件。
打开模式用于控制使用何种方式打开文件,open()函数提供7种基本的打开模式,如下表所示:
文件的打开模式 |
含义 |
‘r’ |
只读模式,如果文件不存在,返回异常FileNotFoundError,默认值 |
‘w’ |
覆盖写模式,文件不存在则创建,存在则完全覆盖 |
‘x’ |
创建写模式,文件不存在则创建,存在作为返回异常FileExistsError |
‘a’ |
追加写模式,文件不存在则创建,存在则在文件最后追加内容。 |
‘b’ |
二进制文件模式 |
‘t’ |
文本文件模式,默认值 |
‘+’ |
与r/w/x/a一同使用,在原功能基础上增加同时读写功能 |
文件使用结束后要用close()方法关闭,释放文件的使用授权,该方法的使用方式如下:
<变量名>.close()
文件的读写
在拥有一个File对象之后,就可以读取它的内容。Python中提供4中常用的文件内容读取方法,如下表所示:
操作方法 |
含义 |
<file>.readall() |
读入整个文件内容,返回一个字符串或字节流 |
<file>.read(size=-1) |
从文件中读入整个文件的内容,如果给出参数,读入前size长度的字符串或字节流 |
<file>.readline(size=-1) |
从文件中读入一行内容,如果给出参数,读入该行前size长度的字符串或字节流 |
<file>.readlines(hint=-1) |
从文件中读入所有行,以每行为元素形成一个列表,如果给出参数,读入hint行 |
Python中也提供了3个与文件内容写入有关的方法。但是,如果打开文件时用读模式,就不能写入文件,需要以“写模式”(‘w’)或“添加模式”(‘a’)打开该文件。
如下表所示:
方法 |
含义 |
<file>.write(s) |
向文件写入一个字符串或字节流 |
<file>.writelines(lines) |
将一个元素全为字符串的列表写入文件 |
<file>.seek(offset) |
改变当前文件操作指针的位置,offset的值: 0:文件开头;1:当前位置;2:文件结尾 |
2实验步骤
2.1 文件读取
Step 1. 新建一个名为ex10_1.txt,在该文件中输入一首古诗:
白日依山尽
黄河入海流
欲穷千里目
更上一层楼
将文件保存到桌面上。输入如下代码读取文件内容:
1 2 3 |
textFile = open("D:\\Tutorial10\\ex10_1.txt","rt") print(textFile.read()) textFile.close() |
在以上代码中,我们可以看到,要对一个文件进行读写操作需要分那三步?
Step2. 在第二行,我们使用了read()方法来读取文件内容,该方法返回了保存在该文件中的字符串。我们也可以使用上表中的其他方法,请修改上面的代码,探索readline()和readlines()的用法:
注意,我们也可以使用readlines()方法,从该文件取得一个字符串列表,其中的每个字符串就是文本中的每一行。我们现在再文件中
2.2文件写入
下面我们来探索文件写入的方法,请输入如下代码:
1 2 3 4 5 6 7 8 |
textFile = open("D:\\Tutorial10\\ex10_1.txt","w") textFile.write("锄禾日当午\n") textFile.write("汗滴禾下土\n") textFile.close()
textFile = open("D:\\Tutorial10\\ex10_1.txt","r") print(textFile.read()) textFile.close() |
通过观察结果,我们发现这段代码的作用是完全覆盖之前文件的内容,重新写入新诗句。在第2行和第3行,调用了write()函数,并像该函数内传递了两个字符串,注意这里是包括换行符的。现在将第1行的<打开模式>从‘w’变成‘a’,请观察输出结果,并解释原因。
2.3 遍历文件
请结合之前学到的遍历方法,创建一个的新txt文件,通过遍历操作将ex10_1的内容复制到新文件中。
3练习题
3.1 制作一个英语词典(词汇量为5),要求输入一个词典,显示词语意思。