当前位置: 首页 > news >正文

搞定python之六----文件读写

本文是《搞定Python》系列文章的第六篇,介绍文件的读写操作。文件读写相对于java要简单的多,板式代码也比较多,最后用with方式打开文件,可以保证文件正常关闭。

1、读文件

一般的文件读写过程:打开、读写、关闭。python文件读取相对于java要简单的多,咱们一步步来,逐步完善。

# python文件读取
# Windows系统有文件扩展名的概念,linux、mac都没有,不影响文件读取

f = open('test.txt')   
print(f.read())
f.close()

此时,要是你的当前目录没有test.txt这个文件,就会报异常,如图:
在这里插入图片描述
此时大家能想到java读取文件时的模板式代码,try…catch…finally。在python其实过程相似,只是写法有点不同。看下面代码:

# python文件读取

f = None      # None就是java中的null
try:
    f = open('test.txt')
    print(f.read())
except FileNotFoundError as e:
    print("文件未找到!", e.filename)
finally:
    if f is not None:     # 判断f不为空时
        f.close()

此时再次执行时就打印:文件未找到! test.txt。异常处理完成了,下面咱们读取已经存在的文件。

注意:test.txt创建到和你这个python代码相同的目录,否则还是读不到。你也可以用绝对路径的方式,比如:c:/a/b/c/test.txt(windows),或者 /Users/a/b/c/test.txt(mac、linux)。文件创建完成后,代码不用改,直接执行代码,再看看:
在这里插入图片描述
再写一个按行读取的代码:

# python文件读取

f = None
try:
    f = open('test.txt', 'r')    # 以只读方式打开
    for line in f.readlines():
        print(line)

except FileNotFoundError as e:
    print("文件未找到!", e.filename)
finally:
    if f is not None:
        f.close()

代码很简单,但是模板式的代码太多,python中也提供了try…resources的方式,咱们改一下:

with open('test.txt', 'r') as f:
    for line in f.readlines():
        print(line)

好了,python读文件就说完了。

2、写文件

有了读文件的基础,写文件就简单多了。直接看代码:

# python写文件

with open("test2.txt", 'a') as f:    # 以追加的方式打开,a代表append
    for i in range(0, 10):
        f.write("第 %s 行,你好。\n" % i)

在这里插入图片描述
好了,就到这里了。
//~~

相关文章:

  • 基于深度学习的蛀牙智能检测与语音提示系统【python源码+Pyqt5界面+数据集+训练代码】
  • Vue2+Vant2 项目初学
  • 计算机是如何工作的
  • DeepSeek 本地化新篇章:Ollama 兼容 OpenAI API 的深度解析与部署实践
  • 【DeepSeek】本地部署DeepSeek的完整教程(Ollama+Docker+Open WebUI)
  • 程序化广告行业(18/89):交易模式与关键概念解析
  • 多线程到底重不重要?
  • Qt 绘图
  • 在线 SQL 转 Python ORM工具
  • DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14_10空状态的固定表头表格
  • 【Git学习笔记】Git结构原理及其分支管理模型分析
  • 抽象工厂模式
  • python报错: AttributeError: module ‘clr‘ has no attribute ‘AddReference‘
  • Browser Copilot 开源浏览器扩展,使用现有或定制的 AI 助手来完成日常 Web 应用程序任务。
  • 六十天前端强化训练之第十九天全面掌握组件通信:父子组件 Props 传值终极指南
  • 设计模式-工厂模式、策略模式、代理模式、责任链模式
  • 蓝桥杯备赛-二分-跳石头
  • 《P1540 [NOIP 2010 提高组] 机器翻译 题解》
  • 中小型企业大数据平台全栈搭建:Hive+HDFS+YARN+Hue+ZooKeeper+MySQL+Sqoop+Azkaban 保姆级配置指南
  • 开源数据仓库全解 — 从原理到实践
  • 铁路上海站今日预计发送旅客65.8万人次,同比增长超16%
  • 建行一季度净利833.51亿同比下降3.99%,营收降5.4%
  • 中办、国办印发《安全生产考核巡查办法》
  • 成都警方:在地铁公共区域用改装设备偷拍女乘客,男子被行拘
  • 物业也能成为居家养老“服务员”,上海多区将开展“物业+养老”试点
  • 报告显示2024年全球军费开支增幅达冷战后最大