python入门系列六(文件操作)

1.引言

在计算机的世界里,文件是数据的重要载体。你比如类unix系统中的设计哲学,即一切皆文件。如果你熟悉java编程语言,跟文件相关的io系统,一定让你望而生畏过:庞大,复杂!

但是,在python的世界中,文件相关的操作,显得是那么的so easy!基本上了解一个open函数即可。那么我们来看一下,跟文件相关的:打开,关闭,读写操作。

2.文件操作

2.1.打开文件

在python中,通过open函数,可以方便灵活操作文件,该函数返回文件对象,用于读取或者写入文件内容。

python 复制代码
def open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True):
    pass

参数解释:

  • file:必须参数。要打开的目标文件,文件路径+文件名称
  • mode:可选参数。打开模式,r表示读,w表示写,a表示追加,x表示独占创建,b表示二进制,t表示文本
  • buffering:可选参数。控制文件缓冲策略,>1指定缓冲区大小,单位字节;1行缓冲,适合于文本模式;0关闭缓冲,适合于二进制模式;-1默认值,使用系统缓冲策略
  • encoding:可选参数。指定文本文件编码格式
  • errors:可选参数。指定编码错误处理方式,strict默认报错,ignore忽略错误,replace替换为占位符
  • newline:可选参数。控制换行符,默认自动识别当前操作系统换行符
  • closefd: 控制是否在关闭文件对象时同时关闭底层的文件描述符 。默认关闭

示例:

2.2.关闭文件

文件操作打开以后,需要占用操作系统资源,当文件不再使用时,需要调用close函数关闭文件。

2.3.读写文件

2.3.1.读文件内容

python 复制代码
#打开文件,得到文件对象
dataObj = open("hello.txt","r",encoding="utf-8")
content = dataObj.read()
print(content)

#关闭文件
dataObj.close()

一行一行读取:

2.3.2.写入文件内容

python 复制代码
#打开文件,得到文件对象
dataObj = open("hello.txt","w",encoding="utf-8")

#写入一行
dataObj.write('Hello, World!\n')
# 写入多行
dataObj.writelines(['Line 1\n', 'Line 2\n'])

#关闭文件
dataObj.close()

注意:通过w默认写入文件内容,会覆盖掉原有文件内容。你看到了,写入前的文件内容不见了

2.3.3.追加文件内容

如果不想文件内容被覆盖,可以使用参数mode=a,表示追加写:

python 复制代码
#打开文件,得到文件对象
dataObj = open("hello.txt","a",encoding="utf-8")
#追加写入文件内容
dataObj.write("我是中国人\n")
dataObj.write("我是技术人\n")
dataObj.write("我喜欢python\n")

#关闭文件
dataObj.close()

3.方便快捷的with语句

在前面通过open函数操作文件过程中,我们需要配对使用close函数,在不需要使用文件时,将文件对象关闭以释放系统资源。虽然只有一行代码,到底还是显得稍微麻烦!实际编程中,有没有更优雅的方式?那就是with语句了

python 复制代码
# 使用with语句优雅的操作文件
with open("hello.txt","r",encoding="utf-8") as f:
    #读取文件内容
    data = f.read()
    print(data)
相关推荐
我想吃烤肉肉1 分钟前
wait_until=“domcontentloaded“ 解释
开发语言·前端·javascript·爬虫·python
退休钓鱼选手4 分钟前
BehaviorTree行为树-机器人及自动驾驶
人工智能·自动驾驶
xiao5kou4chang6kai44 分钟前
贯通LLM应用→数据分析→自动化编程→文献及知识管理→科研写作与绘图→构建本地LLM、Agent→多模型圆桌会议→N8N自动化工作流深度应用
人工智能·自动化·llm·科研绘图·n8n
weixin199701080164 分钟前
废旧物资 item_search - 按关键字搜索商品列表接口对接全攻略:从入门到精通
数据库·python
海棠AI实验室5 分钟前
第二章 从脚本到工程:进阶学习的 5 个方法论(可维护性/可复现/可评估/可扩展/可交付)
python·数据
啊巴矲7 分钟前
小白从零开始勇闯人工智能:机器学习初级篇(TF-IDF)
人工智能·机器学习·tf-idf
dulu~dulu9 分钟前
机器学习---计算题总结
人工智能·机器学习·支持向量机·集成学习·贝叶斯分类器
Das19 分钟前
【机器学习】03_贝叶斯决策
人工智能·机器学习
迷你可可小生11 分钟前
常见神经网络模块
人工智能·深度学习
大厂技术总监下海13 分钟前
你的个人AI工作站已就绪:Ollama开源框架,支持多模态、可定制、一键部署
人工智能·机器学习·开源