0
点赞
收藏
分享

微信扫一扫

Python的文件操作

Soy丶sauce 2022-02-23 阅读 97

一、python打开文件:内置函数open

文件操作:open(参数1,参数2,参数3)-- 其他参数一般不用,具体需要看注释
参数1:指定文件
参数2:打开的模型
r:读取
a:追加写入,不存在会自动创建一个
w:覆盖写入,不存在会自动创建一个
下面三个操作一些视频,图片等文件时用到
以二进制模式去打开文件
rb
ab
wb
参数3:编码方式(utf-8)–不指定就默认gbk

1)打开相同目录下的文件,使用相对路径

# 打开一个文件返回一个操作的句柄
f = open(file="test.txt", mode="r", encoding="utf-8")# 个人喜欢关键字传参怕记错位置
# print(f)
# <_io.TextIOWrapper name='test.txt' mode='r' encoding='utf-8'>
# 文件句柄是个io流,可以看成一个鼠标,能对文件进行操作

2)打开不同目录下的文件,使用绝对路径

# (pycharm中右击文件【copy path】)
# 在路径前加“r”防止字符串转义
f = open(file=r"H:\python2022\test08\test.txt", mode="r", encoding="utf-8")

二、python读取文件的方法

1、read():读取文件中所有的内容

# 打开一个文件返回一个操作的句柄
f = open(file="test.txt", mode="r", encoding="utf-8")
# 读取内容
content=f.read()
print(content)
# 关闭文件,open打开后需要关闭,不然内存会一直被使用;简单测试可以不加,习惯上会加上,类似整夜运行的必须加
f.close()

2、readline():每次读取一行内容

f = open(file="test.txt", mode="r", encoding="utf-8")
data1=f.readline()
print(data1)

3、readlines():把所有内容按行读取出来放到一个列表中,每一行就是列表中的一个元素

f = open(file="test.txt", mode="r", encoding="utf-8")
data2=f.readlines()
print(data2)

运行结果:
[‘学习Python的第1天,快乐呀,加油呀,造作呀!\n’, ‘学习Python的第2天,快乐呀,加油呀,造作呀!\n’, ‘学习Python的第3天,快乐呀,加油呀,造作呀!\n’, ‘学习Python的第4天,快乐呀,加油呀,造作呀!\n’, ‘学习Python的第5天,快乐呀,加油呀,造作呀!\n’, ‘学习Python的第6天,快乐呀,加油呀,造作呀!\n’, ‘学习Python的第7天,快乐呀,加油呀,造作呀!\n’, ‘。。。\n’]

三、文件写入

a:追加写入,不存在会自动创建一个

f = open(file="test.txt", mode="a", encoding="utf-8")
f.write("python虐我千百遍,我待python如初见")
f.close()

写入后文件内容:
在这里插入图片描述

w:覆盖写入,不存在会自动创建一个

f = open(file="test.txt", mode="w", encoding="utf-8")
f.write("python虐我千百遍,我待python如初见")
f.close()

写入后文件内容:
在这里插入图片描述

四、python读取其他格式文件

通常用来读写非文本格式的文件(图片、视频)

rb:只读模式(read),以二进制的模式去打开,如果文件不存在,则会报错(提示找不到文件)

wb:写入模式(write),以二进制的模式去打开,覆盖写入(清除原来的内容),如果文件不存在,则会自动创建

# 第一步:打开文件
f1 = open("002.gif", 'rb')
f2 = open("003.gif", "wb")
# 第二步:读取内容,写入新文件
content = f1.read()
f2.write(content)
# 第三步:关闭文件
f1.close()
f2.close()

运行结果:生成复制图片003.gif

# 读取Excel文件(运行结果为二进制,需要使用rb方法读取)
f = open('apicases.xlsx','rb')
content = f.read()
print(content)
f.close()

运行结果:b’PK\x03\x04\n\x00\x00\x00\x00\x00\x87N\xe2@\x00……
ab:写入模式(append),以二进制的模式去打开,追加写入(在文件原有内容的尾部,写入新的内容),如果文件不存在,则会自动创建

五、通过with操作文件

with:开启open返回文件句柄对象的上下文管理器(执行完with的代码语句之后,会自动关闭文件)

with open(file="test.txt", mode="r", encoding="utf-8") as f:
    c = f.read()
    print(c)
print(f)

运行结果:
python虐我千百遍,我待python如初见
<_io.TextIOWrapper name=‘test.txt’ mode=‘r’ encoding=‘utf-8’>
用with是一样的哦, with open更常用,不用担心关闭文件
注意:文件关闭后无法操作(报错)

举报

相关推荐

0 条评论