news 2026/9/7 7:18:43

Python--文件操作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python--文件操作

Python文件操作

  • 一、文件读取
    • 1、打开文件
    • 2、读取文件内容
  • 二、文件写入
    • 1、写入文件
    • 2、关闭文件
  • 三、文件路径处理
    • 1、文件路径处理
      • (1)、使用 `os` 模块
      • (2)、使用 `pathlib` 模块(Python 3.4+)
    • 2、目录操作
      • (1)、创建目录
      • (2)、删除文件或目录
      • (3)、遍历目录
  • 四、二进制文件操作
  • 五、CSV文件处理
  • 六、JSON文件处理
  • 七、文件压缩与解压
  • 八、异常处理

一、文件读取

1、打开文件

使用open()函数打开文件,语法如下:

file=open("filename.txt","mode")

mode参数指定文件打开方式:

  • "r":只读(默认)。
  • "w":写入(覆盖原有内容)。
  • "a":追加(在文件末尾添加内容)。
  • "x":创建新文件(如果文件已存在则报错)。
  • "b":二进制模式(如"rb""wb")。
  • "t":文本模式(默认)。
  • "+":读写模式(如"r+""w+")。

2、读取文件内容

读取文件的几种方式:

# 读取整个文件content=file.read()# 逐行读取lines=file.readlines()# 逐行迭代forlineinfile:print(line.strip())
# 基础读取方式file=open('example.txt','r')content=file.read()file.close()# 推荐使用with语句withopen('example.txt')asf:lines=f.readlines()# 按行读取为列表

二、文件写入

1、写入文件

写入文件使用write()方法:

file.write("Hello, World!\n")

使用"w"模式会覆盖原有内容,使用"a"模式会在文件末尾追加。

2、关闭文件

操作完成后必须关闭文件以释放资源:

file.close()

为避免忘记关闭文件,推荐使用with语句:

withopen("filename.txt","r")asfile:content=file.read()
# 覆盖写入withopen('output.txt','w')asf:f.write('Hello, World!\n')# 追加写入withopen('output.txt','a')asf:f.writelines(['Line 1\n','Line 2\n'])

三、文件路径处理

1、文件路径处理

Python 的ospathlib模块可以处理文件路径。

(1)、使用os模块

importos# 获取当前工作目录current_dir=os.getcwd()# 拼接路径file_path=os.path.join("folder","file.txt")# 检查文件是否存在ifos.path.exists(file_path):print("File exists")

(2)、使用pathlib模块(Python 3.4+)

frompathlibimportPath# 创建路径对象file_path=Path("folder")/"file.txt"# 读取文件内容content=file_path.read_text()# 写入文件file_path.write_text("New content")
importosfrompathlibimportPath# 使用os.pathdir_path=os.path.dirname('/path/to/file.txt')exists=os.path.exists('file.txt')# 使用pathlibpath=Path('data/file.txt')parent_dir=path.parent path.touch()# 创建空文件

2、目录操作

(1)、创建目录

importos os.makedirs("new_folder",exist_ok=True)

(2)、删除文件或目录

importos# 删除文件os.remove("file.txt")# 删除空目录os.rmdir("empty_folder")# 删除非空目录(递归删除)importshutil shutil.rmtree("folder")

(3)、遍历目录

importosforroot,dirs,filesinos.walk("folder"):forfileinfiles:print(os.path.join(root,file))

四、二进制文件操作

处理图片、视频等非文本文件时,需使用'rb''wb'模式进行二进制读写。

# 复制图片文件withopen('input.jpg','rb')assrc,open('copy.jpg','wb')asdst:dst.write(src.read())# 读取二进制文件withopen("image.jpg","rb")asfile:data=file.read()# 写入二进制文件withopen("copy.jpg","wb")asfile:file.write(data)

五、CSV文件处理

csv模块简化CSV文件的读写操作,支持字典形式的数据处理。

importcsv# 写入CSVwithopen('data.csv','w',newline='')asf:writer=csv.writer(f)writer.writerow(['Name','Age'])writer.writerow(['Alice',25])# 读取CSV为字典withopen('data.csv','r')asf:reader=csv.DictReader(f)forrowinreader:print(row['Name'],row['Age'])

六、JSON文件处理

json模块提供JSON数据的序列化与反序列化功能。

importjson data={'name':'Bob','score':90}# 写入JSON文件withopen('data.json','w')asf:json.dump(data,f,indent=2)# 读取JSON文件withopen('data.json')asf:loaded=json.load(f)print(loaded['name'])

七、文件压缩与解压

使用zipfile模块

importzipfile# 创建 ZIP 文件withzipfile.ZipFile("archive.zip","w")aszipf:zipf.write("file1.txt")zipf.write("file2.txt")# 解压 ZIP 文件withzipfile.ZipFile("archive.zip","r")aszipf:zipf.extractall("extracted_folder")

八、异常处理

文件操作需处理IOErrorFileNotFoundError等异常。

try:withopen('missing.txt')asf:content=f.read()exceptFileNotFoundError:print("文件不存在")exceptPermissionError:print("无权限访问")
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/6 11:40:17

Cursor快捷键大全:效率翻倍的隐藏技巧

用了半年Cursor,我发现自己以前写代码的方式太原始了。直到有一天,我看到同事的手指在键盘上飞舞,几乎不用碰鼠标就完成了我需要半分钟的操作,才意识到掌握快捷键有多重要。今天我就把自己整理的Cursor快捷键秘籍分享出来&#xf…

作者头像 李华
网站建设 2026/9/6 23:42:13

【项目实战】md 是标准纯文本标记语言,mdx 是其扩展格式(融合 JSX/组件能力)

md(Markdown)和 mdx(MDX)是两种关联但定位不同的文件格式,核心区别在于「语法支持范围」「功能上限」和「使用场景」——md 是标准纯文本标记语言,mdx 是其扩展格式(融合 JSX/组件能力),以下是详细对比: 一、核心定义与本质区别 维度 .md 文件(Markdown) .mdx 文件…

作者头像 李华
网站建设 2026/9/6 16:10:24

2、网络指南:印刷版与在线版的选择及网络知识介绍

网络指南:印刷版与在线版的选择及网络知识介绍 一、印刷版与在线版的情况 在1993年秋天,有人提议在O’Reilly & Associates出版相关网络指南书籍。最终达成协议,O’Reilly将制作该网络指南的官方印刷版,而原作者保留版权以便书籍资源能自由分发。这意味着读者有两种选…

作者头像 李华
网站建设 2026/9/5 21:53:34

Kotaemon如何处理歧义问题?上下文消解策略解析

Kotaemon如何处理歧义问题?上下文消解策略解析 在真实的对话场景中,用户很少会用完整、规范的句子提问。更多时候,他们的表达是碎片化的:“它多少钱?”“上次那个呢?”“比之前便宜吗?”——这些…

作者头像 李华
网站建设 2026/9/7 1:12:08

6、网络配置与管理全解析

网络配置与管理全解析 1. 路由选择机制 当IP实现搜索到目标的最佳路由时,可能会找到多个匹配目标地址的路由条目。例如,默认路由能匹配所有目标,但发往本地连接网络的数据报也会匹配其本地路由。那么IP如何确定使用哪条路由呢?这就体现了子网掩码的重要性。当两条路由都匹…

作者头像 李华
网站建设 2026/9/6 10:13:41

零代码训练!用本地大模型实现文本情感分析

本文介绍如何利用本地部署的大模型(Ollama/vLLM)实现零训练的文本情感分析。通过精心设计的Prompt,将模型直接转换为分类器,无需传统NLP流程中的分词、特征构造、模型训练等复杂步骤。文章提供了从单条分析到CSV批量处理的完整代码…

作者头像 李华