Python 文件操作
对文件的操作有很多种,如:打开、关闭、读、写、复制......
Python中对文件进行操作的基本步骤如下:
- 打开文件
- 读写等操作
- 关闭文件
1.打开文件
Python中,使用内置的open()函数可以打开一个已存在的文件,或者创建一个新文件并打开。
语法格式如下(常用参数):
f = open(file[,mode[,encoding=None]])
- file: 文件路径(包含文件名),可以是相对路径,也可以是绝对路径
- mode: 打开模式,默认是只读模式
- encoding:编码格式
模式介绍:
| 模式 | 描述 |
|---|---|
| r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
| rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
| r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
| rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
| w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
| wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
| w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
| wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
| a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
| ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
| a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
| ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
2.读写等操作
(1)写入操作及关闭文件
# 打开当前目录的test.txt文件,如果没有该文件则创建一个,打开方式为w(覆盖写入模式,文件内原有的内容会被覆盖),编码方式为utf-8 f = open('test.txt', 'w', encoding='utf-8') # 覆盖写入,初次写入时光标在文件开头,如果文件原本有内容,会被覆盖掉 f.write('hello') # 由于进行了内容写入,随着写入操作,光标在文件结尾,因此下面写入执行后,文件中的内容为:helloworld f.write('world') # 读写等操作完成后要关闭 f.close()
# with open(文件) as f 方式会确保文件一定会被关闭,不用再去手动调用close()方法 with open('poem.txt', 'w', encoding='utf-8') as f: f.write('渭城朝雨浥轻尘,\n客舍新新草木青。\n劝君更尽一杯酒,\n西出阳关无故人。')
(2)读取操作
假设当前目录中有一个poem.txt文件,文件内容如下:
渭城朝雨浥轻尘,
客舍新新草木青。
劝君更尽一杯酒,
西出阳关无故人。
read() 方法:
读取文件所有的内容。
# with open(文件) as f 方式会确保文件一定会被关闭,不用再去手动调用close()方法 with open('poem.txt', 'r', encoding='utf-8') as f: poem = f.read() print(poem) # 会打印出诗句 print(type(poem)) # <class 'str'>
readlines() 方法:
按照⾏的⽅式把整个⽂件中的内容进⾏⼀次性读取,并且返回的是⼀个列表,其中每⼀⾏的数据为⼀个元素。
还有readline()方法读取一行内容,返回该行内容,较少使用。
# with open(文件) as f 方式会确保文件一定会被关闭,不用再去手动调用close()方法 with open('poem.txt', 'r', encoding='utf-8') as f: poem = f.readlines() # readlines()返回一个列表,文件中的每一行就是列表中的一个元素 print(poem) # ['渭城朝雨浥轻尘,\n', '客舍新新草木青。\n', '劝君更尽一杯酒,\n', '西出阳关无故人。'] print(poem[0]) # 渭城朝雨浥轻尘,
浙公网安备 33010602011771号