当前位置:首页>python>Python文件操作:轻松读写各种文件,掌握文件处理技巧,让你的程序与数据无缝对接!

Python文件操作:轻松读写各种文件,掌握文件处理技巧,让你的程序与数据无缝对接!

  • 2026-08-26 15:53:15
Python文件操作:轻松读写各种文件,掌握文件处理技巧,让你的程序与数据无缝对接!
关注+星标,每天学习Python新技能

来源:网络

这次咱来聊聊Python的文件操作。掌握了这个,你的程序就能从外部读取数据,处理完又能写回去,简直不要太方便。主要内容包括:文件的打开、读取、写入和关闭啦。还会涉及到不同模式,像只读、只写、追加这些。通过学习这些,你就可以让你的Python程序跟各种数据自由交互啦!

# 文件打开与关闭

文件就像一扇门,要读取或写入数据,你得先打开它。Python里,open() 函数就是负责开门的。开了门,用完了记得关上,不然可能会出问题,这就是close() 函数。

file = open("my_file.txt", "r")  # 以只读模式打开一个名为my_file.txt的文件# 这里可以进行文件的读取操作file.close()  # 关闭文件

这里的 "r" 就是模式,表示只读。还有 "w"(只写,会覆盖原有内容), "a"(追加,在文件末尾添加内容)等等。要注意的是,如果文件不存在,使用 "w" 模式会创建一个新文件,而 "r" 模式会报错。

温馨提示: 忘记关门是很常见的错误。为了避免这种情况,可以使用 with 语句,它可以自动管理文件的打开和关闭.

withopen("my_file.txt", "r") as file:# 这里进行文件读取操作    content = file.read()# 文件在这里被自动关闭

with 语句块结束的时候,文件就自动关闭了,省心!

# 文件读取

打开了文件,下一步就是读取里面的内容。Python 提供了几种读取方式:

  • read()
    :一次性读取整个文件内容,放到一个字符串里。如果文件太大,可能会占用大量内存。
  • readline()
    :每次读取一行内容。
  • readlines()
    :一次性读取所有行,放到一个列表里,每行是列表的一个元素。
withopen("my_file.txt", "r") as file:    content = file.read()  # 读取整个文件print(content)withopen("my_file.txt", "r") as file:    line = file.readline()  # 读取一行print(line)withopen("my_file.txt", "r") as file:    lines = file.readlines()  # 读取所有行for line in lines:print(line.strip()) # strip() 用于移除字符串头尾指定的字符(默认为空格或换行符)

选用哪种方式,取决于你的需求和文件的大小。一般来说,如果文件不大,read() 最方便。如果文件很大,或者需要逐行处理,readline() 或 readlines() 更合适。

# 文件写入

写入内容也很简单,使用 write() 函数。

withopen("my_file.txt", "w") as file:    file.write("Hello, world!\n")    file.write("This is a new line.")

注意,"w" 模式会覆盖原有内容。如果你想在文件末尾添加内容,就用 "a" 模式。

withopen("my_file.txt", "a") as file:    file.write("\nAdding more content...")

写入的时候,换行符 \n 很重要,不然所有内容会挤在一行。

# 文件模式详解

文件模式决定了你对文件能做什么,以及怎么做。一些常用的模式:

  • "r"
    :只读(默认模式)。文件必须存在,否则报错。
  • "w"
    :只写。如果文件存在,覆盖原有内容;如果不存在,创建新文件。
  • "a"
    :追加。如果文件存在,在末尾添加内容;如果不存在,创建新文件。
  • "r+"
    :读写。文件必须存在,可以读也可以写。
  • "w+"
    :读写。如果文件存在,覆盖原有内容;如果不存在,创建新文件。
  • "a+"
    :读写。如果文件存在,在末尾添加内容;如果不存在,创建新文件。

还有一些二进制模式,用来处理非文本文件,比如图片、音频这些。在模式后面加上 "b" 就行了,比如 "rb"、 "wb" 。

# 以二进制只读模式打开图片withopen("image.jpg", "rb") as file:    image_data = file.read()

温馨提示: 文本模式和二进制模式的处理方式略有不同。文本模式会自动处理换行符,而二进制模式则不会。

# 文件指针

文件指针就像一个光标,指示当前读取或写入的位置。

  • seek(offset, whence)
    :移动文件指针。offset 是偏移量,whence 是起始位置(0:文件开头,1:当前位置,2:文件末尾)。
  • tell()
    :返回当前文件指针的位置。
withopen("my_file.txt", "r") as file:print(file.tell())  # 输出:0    file.read(5)  # 读取 5 个字符print(file.tell())  # 输出:5    file.seek(0)  # 回到文件开头print(file.tell())  # 输出:0

seek() 和 tell() 在处理大文件,或者需要随机访问文件内容时很有用。

# 异常处理

文件操作可能会出错,比如文件不存在,权限不够等等。为了让程序更健壮,要使用异常处理。

try:withopen("non_existent_file.txt", "r") as file:        content = file.read()print(content)except FileNotFoundError:print("文件未找到!")except Exception as e:print(f"发生错误:{e}")

try...except 语句可以捕获异常,并进行相应的处理。这样,即使出现错误,程序也不会崩溃,而是会给出友好的提示。

# 应用场景举栗

文件操作的应用场景非常广泛。

  • 数据存储
    :将程序运行结果保存到文件中,方便以后使用。比如,爬虫程序爬取的数据,可以保存到 CSV 文件中。
  • 配置文件
    :程序的配置信息,可以放到一个文本文件中,程序启动时读取这些配置信息。
  • 日志记录
    :程序运行过程中的一些信息,可以记录到日志文件中,方便调试和问题排查。
# 写入配置信息config = {"name": "My App", "version": "1.0"}withopen("config.txt", "w") as file:for key, value in config.items():        file.write(f"{key}={value}\n")# 读取配置信息config = {}try:withopen("config.txt", "r") as file:for line in file:            key, value = line.strip().split("=")            config[key] = valueexcept FileNotFoundError:print("配置文件未找到!")print(config)

文件操作是编程的基础,也是必备技能。勤加练习,灵活运用,相信你很快就能掌握它,让你的程序更加强大!

长按或扫描下方二维码,免费获取 Python公开课和大佬打包整理的几百G的学习资料,内容包含但不限于Python电子书、教程、项目接单、源码等等

▲扫描二维码-免费领取

推荐阅读

Lihil框架—其愿景是:使 Python 成为 Web 开发的主流编程语言

提升Python程序性能的7个习惯

搞懂Python中可迭代对象是否相等,只需这几个技巧

excel-serializer: Excel 世界的 json.dump()/ load(),轻松序列化Python 复杂数据

点击 阅读原文了解更多

最新文章

随机文章