您的位置:

Python文件操作:打开文件、读写文件

一、文件的打开

Python中,要打开一个文件,你可以使用内置的open()函数。open()函数返回一个文件对象。

语法格式如下:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

其中file是指文件的路径、mode是指打开文件的模式、buffering是指文件读写缓冲的大小、encoding是指文件编码、errors是指处理编码过程中出现的错误方式、newline是指换行风格的指定和识别,可选项是None、'\n'、'\r'和'\r\n'等、closefd是指当文件关闭时这个文件处于同一个进程文件描述符是否被关闭、opener是指打开文件时可能使用的自定义的开启器。

在Python中,有以下几种打开文件的模式(mode):

  • 'r' 读取(默认)
  • 'w' 写入(会先清空文件)
  • 'x' 独占写入,如果文件已存在则请求失败
  • 'a' 追加写入,如果文件存在则在末尾追加写入,不存在则创建
  • 'b' 二进制模式
  • 't' 文本模式(默认)
  • '+' 读写模式

例如:

file = open('test.txt', 'r')

这个语句打开了文件“test.txt”,并且使用“r”模式,也可简写成file = open('test.txt')。

二、读取文件

常用的读取文件的方法有两种,分别是read()和readlines()。

1. read()方法

read()方法是Python读取文件的最基本方法,可以一次性读取整个文件,将文件中的内容全部返回为一个字符串。用法如下:

file = open('test.txt')
text = file.read()

这个例子打开文件“test.txt”,然后使用read()方法读取它的所有内容,并将它保存到text变量中。

2. readlines()方法

readlines()方法会从文件中逐行读取内容,将每一行保存到一个列表中。用法如下:

file = open('test.txt')
text = file.readlines()

这个例子打开“test.txt”文件,并使用readlines()方法逐行读取它的内容,将每一行都保存到text列表中。

三、写入文件

对文件进行写入操作时,通常会使用write()和writelines()两个方法。

1. write()方法

write()方法用于写入字符串或者二进制数据到文件中,用法如下:

file = open('test.txt', 'w')
file.write('Hello, World!')
file.close()

执行上述代码后,文件“test.txt”中的内容就会变成“Hello, World!”。

2. writelines()方法

writelines()方法用于将多个字符串或二进制数据写入文件中,用法如下:

file = open('test.txt', 'w')
lines = ['line 1\n', 'line 2\n', 'line 3\n']
file.writelines(lines)
file.close()

这个例子中,先创建了一个包含多个字符串的列表lines,然后调用writelines()方法将它们写入文件“test.txt”中。

四、关闭文件

在使用完文件后,必须将文件关闭。关闭文件可以使用close()方法,用法如下:

file = open('test.txt')
text = file.read()
file.close()

这个例子打开了文件“test.txt”,并使用read()方法读取了其中内容,最后调用close()方法关闭了文件。

五、使用with语句

使用with语句可以在不用考虑关闭文件的情况下打开和关闭文件,它可以确保在语句执行完毕之后自动关闭文件。用法如下:

with open('test.txt', 'r') as f:
    text = f.read()

这个例子使用了with语句打开“test.txt”文件,并用read()方法读取了它的内容,读取完后with语句自动关闭了文件。