Python读取文件 with open

流程图

flowchart TD
    A[开始] --> B[打开文件]
    B --> C[读取文件内容]
    C --> D[关闭文件]
    D --> E[结束]

类图

classDiagram
    class 文件
    文件 : +打开文件()
    文件 : +读取文件内容()
    文件 : +关闭文件()

代码实现

打开文件

# 打开文件
file = open(filename, mode)
  • filename是文件路径,可以是相对路径或绝对路径,需要包含文件名和后缀名。
  • mode是打开文件的模式,常用的模式有:
    • 'r':只读模式,用于读取文件内容(默认模式)。
    • 'w':写入模式,用于清空文件并写入内容。
    • 'a':追加模式,用于在文件末尾添加内容。
    • 'x':创建模式,用于创建新文件并写入内容,如果文件已存在则报错。
    • 'b':二进制模式,用于读取或写入二进制文件。
    • 't':文本模式,用于读取或写入文本文件(默认模式)。

读取文件内容

# 读取文件内容
content = file.read()
  • file是打开的文件对象。
  • read()方法用于读取文件的全部内容,返回一个字符串。

关闭文件

# 关闭文件
file.close()
  • file是打开的文件对象。
  • close()方法用于关闭文件,释放文件资源。

完整示例

# 打开文件
file = open('example.txt', 'r')

# 读取文件内容
content = file.read()
print(content)

# 关闭文件
file.close()

以上代码会打开名为example.txt的文件,读取文件的全部内容,并将内容打印输出到控制台,然后关闭文件。

注意事项

  • 在使用with open语句时,文件的打开和关闭会自动处理,不需要手动调用close()方法。例如:
with open('example.txt', 'r') as file:
    content = file.read()
    print(content)

以上代码和之前的示例效果相同,但是无需手动关闭文件。

  • 在读取大文件时,可以使用循环逐行读取,以避免一次读取过多内容导致内存溢出。例如:
with open('example.txt', 'r') as file:
    for line in file:
        print(line)

以上代码会逐行读取example.txt文件的内容,并打印每一行。

  • 在写入文件时,如果要写入多行内容,可以使用write()方法,每写入一行后需要手动添加换行符\n。例如:
with open('example.txt', 'w') as file:
    file.write('Hello, world!\n')
    file.write('Welcome to Python!')

以上代码会清空example.txt文件,并写入两行内容。

  • 在使用二进制模式读取或写入二进制文件时,需要指定打开文件的模式为'rb''wb'。例如:
# 读取二进制文件
with open('example.bin', 'rb') as file:
    content = file.read()

# 写入二进制文件
with open('example.bin', 'wb') as file:
    file.write(b'\x48\x65\x6c\x6c\x6f\x2c\x20\x77\x6f\x72\x6c\x64\x21')

以上代码分别读取和写入名为example.bin的二进制文件。

希望以上内容能够帮助到你,如果还有其他问题,请随时提问。