python 文件打开,读,关闭

1.open()打开函数

在Python,使用open函数, 可以打开一个已经存在的文件,或者创建一个新文件,语法如下

open(name, mode, encoding)
name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。
mode:设置打开文件的模式(访问模式):只读、写入、追加等。
encoding:编码格式(推荐使用UTF-8)
一般和 f.close()一起写。
示例代码:
f = open('python.txt', 'r', encoding=" UTF-8)
# encoding的顺序不是第三位,所以不能用位置参数,用关键字参数直接指定
mode常用的二柙基础访何模式
r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w:打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,原有内容会被删除。如果该文件不存在,创建新文件。
a:打开一个文件用于追加。如果该文件已存在,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

2.读操作

2.1 read()方法:

文件对象.read(num)
num表示要从文件中读取的数据长度(单位是字节),如果没有传入num或为负,那么就表示读取文件中所有数据。它返回为字符串对象

2.2 readlines()方法:

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

f = open("f:/测试.txt", "r", encoding="UTF-8")
print(type(f)) # 文本类型

# 读取文件-read()
print(f"读取两个字节的结果:{f.read(2)}")
print(f"read方法读取全部字节的结果:{f.read()}")  # 在连续调用read()函数时,会从上次读到的地方开始
print("---------------------------------------------")
# 读取文件的方法-readlines()
lines = f.readlines()
print(f"lines对象的类型:{type(lines)}")
print(f"lines对象的内容是:{lines}")  # lines对象的内容是:[] 空?因为上面两个read()读到了最后,
# 若将9.10行注释掉,就显示全部内容了:lines对象的内容是:['阿明是帅哥\n', '卡嘎'] , \n换行符也会显示
"""
运行结果:
<class '_io.TextIOWrapper'>
读取两个字节的结果:阿明
read方法读取全部字节的结果:是帅哥
卡嘎
---------------------------------------------
lines对象的类型:<class 'list'>
lines对象的内容是:[]
"""

2.3 readline()方法:一次读取一行内容。该方法返回一个字符串对象。

2.4for循环读文件行

for line in open("python.txt", "r"):
    print(line)

3.关闭文件对象

close() 关闭文件对象

f = open("python.txt", "r")

f.close()

通过最后close,关闭文件对象,也就是关闭对文件的占用

如果不调用close,同事程序没有停止运行,那么这个文件将一直被python程序占用

4.with open 语句

with open("python.txt", "r") as f:
f.readlines()

通过在with open的语句中对文件进行操作

帮助我们自动地完成对文件的close

with open("f:/测试.txt", "r", encoding="UTF-8") as f:
    for line in f:
        print(f"每行数据是:{line}")
        
"""
运行结果:
每行数据是:阿明是帅哥

每行数据是:卡嘎
""
posted @   Dalier-!  阅读(354)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示