Python文件读写
Python是一种强大的编程语言,支持文件的读写操作。文件读写是处理文件的常见操作之一,它可以让我们读取文件中的数据,或者将数据写入到文件中。Python的文件读写操作非常灵活,可以对文本文件、二进制文件、CSV文件等进行读写。
文件对象
在Python中,文件读写是通过文件对象来完成的。要打开一个文件,可以使用Python内置的open()
函数,该函数接收文件名和标志位作为参数,返回文件对象,我们可以通过文件对象读取或写入文件。
以下是一个简单的读取文本文件的例子:
# 打开文件
file = open('test.txt', 'r')
# 读取文件内容
content = file.read()
# 关闭文件
file.close()
print(content)
上面的代码中,我们首先通过open()
函数打开文件,函数接收文件名作为参数,并且指定了打开模式为只读'r'
。然后我们通过文件对象的read()
函数读取了文件的全部内容,读取完成后关闭文件。最后我们将读取到的内容打印到控制台上。
接下来我们来讲一下Python中常用的文件打开模式:
'r' - 只读模式,打开文件后只能读取文件内容,不能写入文件
'w' - 写入模式,打开文件后只能写入文件内容,如果文件存在,则会清空文件原有的内容,如果文件不存在,则会创建一个新文件
'a' - 追加模式,打开文件后只能写入文件内容,如果文件存在,则会在文件末尾继续写入,如果文件不存在,则会创建一个新文件
'x' - 独占模式,打开文件后只能写入文件内容,如果文件不存在,则会创建一个新文件,否则会抛出FileExistsError
异常
'b' - 二进制模式,打开文件时以二进制模式进行读写,一般用于读写二进制文件,如图片、视频等
't' - 文本模式,打开文件时以文本模式进行读写,一般用于读写文本文件,如txt文件等。如果没有指定'b'
标志位,则默认为't'
模式
读取文本文件
在Python中,可以通过文件对象的read()
函数来读取文件内容,该函数会将整个文件读入到一个字符串变量中。如果文件非常大,一次性读取可能会占用过多的内存,可以使用readline()
函数按行读取文件内容,或者使用readlines()
函数按行读取所有内容并返回一个列表。
以下是一个按行读取文本文件的例子:
# 打开文件
file = open('test.txt', 'r')
# 按行读取文件内容
lines = file.readlines()
# 关闭文件
file.close()
# 输出文件内容
for line in lines:
print(line.strip())
上面的代码中,我们首先通过open()
函数打开文件,函数接收文件名作为参数,并且指定了打开模式为只读'r'
。然后我们通过文件对象的readlines()
函数按行读取了文件的全部内容,读取完成后关闭文件。最后我们遍历文件的所有行并打印到控制台。
写入文本文件
在Python中,可以通过文件对象的write()
函数来写入文件内容,该函数将指定的字符串写入到文件中。如果文件不存在,则会创建一个新文件。如果文件已经存在,则会打开文件并覆盖原有内容。
以下是一个写入文本文件的例子:
# 打开文件
file = open('test.txt', 'w')
# 写入文件内容
file.write('Hello, world!\n')
file.write('This is a test file.\n')
# 关闭文件
file.close()
上面的代码中,我们首先通过open()
函数打开文件,函数接收文件名和打开模式作为参数,并且指定了打开模式为写入模式'w'
。然后我们通过文件对象的write()
函数将两行内容写入到文件中。最后我们关闭文件以确保数据被刷新到磁盘上。
二进制文件读写
在Python中,可以通过文件对象的read()
和write()
函数来操作二进制文件,这些函数主要用于读写非文本文件,如图片、视频等。在读写二进制文件时,如果不指定打开模式,则会自动以二进制模式打开文件。
以下是一个读取二进制文件的例子:
# 打开文件
file = open('test.jpg', 'rb')
# 读取文件内容
content = file.read()
# 关闭文件
file.close()
上面的代码中,我们首先通过open()
函数打开一个二进制文件'test.jpg'
,打开模式为二进制'rb'
。然后我们使用read()
函数读取文件内容,读取完成后关闭文件。
以下是一个写入二进制文件的例子:
# 打开文件
file = open('test.jpg', 'wb')
# 写入文件内容
file.write(content)
# 关闭文件
file.close()
上面的代码中,我们首先通过open()
函数打开一个二进制文件'test.jpg'
,打开模式为二进制写入'wb'
。然后我们使用write()
函数将读取到的文件内容写入到文件中。最后我们关闭文件以确保数据写入到磁盘上。
CSV文件读写
在Python中,可以使用csv
模块读写CSV文件。CSV文件是一种常见的文件格式,它使用逗号分隔不同的字段,并且使用换行符分隔不同的行。可以使用csv
模块中的函数来对CSV文件进行读写操作。
以下是一个读取CSV文件的例子:
import csv
# 打开文件
file = open('test.csv', 'r')
# 创建CSV读取器
reader = csv.reader(file)
# 读取文件内容
for row in reader:
print(row)
# 关闭文件
file.close()
上面的代码中,我们首先导入csv
模块,然后通过open()
函数打开一个CSV文件'test.csv'
,打开模式为只读'r'
。接着我们使用csv.reader()
函数创建一个CSV读取器,该读取器按行读取CSV文件并返回一个迭代器,迭代器的每一个元素都是一个列表,代表了一行CSV文件中的数据。最后我们遍历整个迭代器并打印到控制台上。
以下是一个写入CSV文件的例子:
import csv
# 打开文件
file = open('test.csv', 'w', newline='')
# 创建CSV写入器
writer = csv.writer(file)
# 写入文件内容
writer.writerow(['name', 'age', 'gender'])
writer.writerow(['Tom', '28', 'Male'])
writer.writerow(['Jerry', '22', 'Female'])
# 关闭文件
file.close()
上面的代码中,我们首先导入csv
模块,然后通过open()
函数打开一个CSV文件'test.csv'
,打开模式为写入'w'
。接着我们使用csv.writer()
函数创建一个CSV写入器,该写入器按行写入CSV文件并返回一个迭代器,迭代器的每一个元素都是一个字符串,代表了一行CSV文件中的数据。最后我们使用writerow()
函数写入每一行的数据,并关闭文件以确保数据写入到磁盘上。