6 文件读写与多线程

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),要求输入一个词典,显示词语意思。

 

猜你喜欢

转载自blog.csdn.net/Liverpool_05/article/details/83264253
今日推荐