Python---文件打开、读取、写入

打开文件 open()

打开已存在文件或创建一个新文件

语法:open(name,mode,encoding)

name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。

mode:设置打开文件的模式(访问模式): r:只读、w:写入、a:追加等。

encoding:编码格式(推荐使用UTF-8)

例子:

python 复制代码
f = open('test.txt', 'r', encoding="UTF-8")  # 注意:编码格式需要用关键字作为参数传递
print(type(f))   # <class '_io.TextIOWrapper'>

读取文件

read()方法: 读取数据的长度

语法:文件对象.read(num) ----- 结果:字符串

num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据

例子:

python 复制代码
f = open('test.txt', 'r', encoding="UTF-8") 
print(f"读取10个字节的结果{f.read(5)}")    # 读取内容:我是测试文
print(f"read方法读取全部内容是{f.read()}")  # 注意:这次会接着上一次接着读取

readlines()方法: 读取全部 ------ 结果:列表

语法:文件对象.readlines( )

readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。

例子:

python 复制代码
f = open('test.txt', 'r', encoding="UTF-8")
print(f"read方法读取全部内容是{f.read()}")  # 读取全部
lines= f.readlines()
print(type(lines))  # <class 'list'>
print(lines)        # 空值,原因:第2行已经读取了全部

readline()方法:一次读取一行**----- 结果:字符串**

语法:文件对象.readlines( )

例子:

python 复制代码
f = open('test.txt', 'r', encoding="UTF-8")
line1 = f.readline()
print(type(line1),line1)    # <class 'str'> 我是测试文件1 (读取一行内容)

for 循环读取文件行

例子:

python 复制代码
# f = open('test.txt', 'r', encoding="UTF-8")
# for line2 in f:
#     print(line2)  # 读取每一行数据

for line3 in open("test.txt","r",encoding="UTF-8"):
    print(line3)   # 读取每一行数据

关闭文件 close() --- 解除文件的占用

语法:文件对象.close()

with open 语法

语法:with open(name,mode,encoding) as 文件名:

通过在with open的语句块中对文件进行操作,可以在操作完成后自动关闭close文件,避免遗忘掉close方法

例子:

python 复制代码
with open('test.txt', 'r', encoding="UTF-8") as f:
    for line4 in f:
        print(line4)

文件写入 write()

文件存在会覆盖,文件不存在会创建

语法:文件对象.write() --- 打开文件,通过w模式

注意:

直接调用write,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区

当调用flush的时候,内容会真正写入文件

这样做是避免频繁的操作硬盘,导致效率下降(攒一堆,一次性写磁盘)

文件刷新 flush()

语法:文件对象.flush()

例子:

python 复制代码
# f = open("test.txt", "w", encoding="UTF-8")
# f.write("hello")    # 文件写入:内容写入内存中
# f.flush()           # 文件刷新:将内存中积攒的内容,写入到硬盘的文件中
# f.close()           # 关闭文件:内置了flush()功能

f = open("test.txt", "w", encoding="UTF-8")
f.write("你好")  # 会覆盖吧上面写入的内容

文件追加操作 write()

语法:文件对象.write() --- 打开文件,通过a模式

python 复制代码
open("test.txt","a",encoding="UTF-8")
f.write("\nhi1")   # 换行输入
f.flush()
f.close()

小案例:

python 复制代码
#  小案例
fr = open("test.txt", "r", encoding="UTF-8")
fw = open("test1.txt", "a", encoding="UTF-8")
for i in fr:
    # print(i)
    if i.count("测试") >= 1:
        continue
    else:
        fw.write(i)
print(fw)
fr.close()
fw.close()




# fr = open("test.txt", "r", encoding="UTF-8")
# fw = open("test1.txt", "a", encoding="UTF-8")
# for i in fr:
#     line = i.strip()   # 去除换行符
#     if line.split(",")[4] == "测试":   # 以 , 分割字符串
#         continue
#     else:
#         fw.write(line)
#         fw.write("\n")   # 添加换行符
# fr.close()
# fw.close()
相关推荐
陈敬雷-充电了么-CEO兼CTO5 分钟前
主流大模型Agent框架 AutoGPT详解
人工智能·python·gpt·ai·chatgpt·nlp·aigc
KENYCHEN奉孝14 分钟前
Flask3.1打造极简CMS系统
后端·python·flask
花海如潮淹29 分钟前
开源项目管理工具:从协作混乱到高效交付的实战指南
python
秋难降34 分钟前
Python 知识点详解(二)
数据库·python·正则表达式
拓端研究室43 分钟前
专题:2025母婴行业洞察报告|附60+份报告PDF汇总下载
开发语言·人工智能·python
Gq.xxu1 小时前
RAG实战之dify源码文件解析-pdf文件解析流程
开发语言·python·pdf
Kyln.Wu1 小时前
【python实用小脚本-131】Python 实现 HTML 到 PDF 转换:解决文档处理痛点的高效工具
python·pdf·html
JavaEdge在掘金1 小时前
告别“作坊式”开发,CodeBuddy能否成为企业级AI编程的“银弹”?
python
sohoAPI1 小时前
Flask快速入门
后端·python·flask
Deng9452013146 小时前
基于Python的职位画像系统设计与实现
开发语言·python·文本分析·自然语言处理nlp·scrapy框架·gensim应用