Python文件读写

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()函数写入每一行的数据,并关闭文件以确保数据写入到磁盘上。

后端开发标签