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])      # 渭城朝雨浥轻尘,

 

posted on 2023-04-05 20:20  木去  阅读(259)  评论(0)    收藏  举报