ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

文件的三种打开方式以及with管理上下文

2019-08-09 20:51:30  阅读:192  来源: 互联网

标签:文件 txt encoding read 三种 print 上下文 open 打开方式


文件的三种打开方式以及with管理上下文

一、文件的三种打开方式

1.1 只读

f = open(r'D:\pycharm\yjy\上海python学习\456.txt','r',encoding='utf8')
data = f.read()  #读取文件
print(data)
f.close()

读的其他语法

逐行读、是否可读

print(1,f.readline())  # 逐行读
print(f.readable())  # 是否可读  # True

ps:如果我们需要读文件里面的每一行代码,我们可以用for循环,举个栗子

for i in f:
    print(i)
f.close

1.2 只写

f = open(r'D:\pycharm\yjy\上海python学习\456.txt','w',encoding='utf8')   #清空原来的文件后,重新写入
f.write('yanjiayi')
f.close()

写的其他语法

是否可读会将列表拼为字符串写出来

print(f.writable())  #可写 True
f.writelines(['sdklfj','sdkfjksldf'])   #会将列表拼为字符串写出来

1.3 追加

f = open(r'D:\pycharm\yjy\上海python学习\456.txt','a',encoding='utf8')  #不会删除原来的文件,在后面直接写入
f.write('meilidexiaokeai')
f.close()

二、with管理上下文

2.1 文本模式

2.1.1 文本模式(t)

f = open('test.py','rt')
data = f.read()
print(data)

2.1.2进制模式(b)

b模式是通用的模式,因为所有的文件在硬盘中都是以二进制的形式存储的,需要注意的是:b模式读写文件,一定不能加上encoding参数,因为二进制无法再编码。

fw = open('test.png','wb')  # encoding是为了让二进制代码变成文本所需要的,所以b模式不需要encoding
fw.write(img)

之前我们使用open()方法操作文件,但是open打开文件后我们还需要手动释放文件对操作系统的占用。但是其实我们可以更方便的打开文件,即Python提供的上下文管理工具——with open()。

with open('32.txt', 'rt', encoding='utf8') as f:
    print(f.read())
sdf

with open()方法不仅提供自动释放操作系统占用的方法,并且with open可以使用逗号分隔,一次性打开多个文件,实现文件的快速拷贝。

with open('32.txt', 'rb') as fr, \
        open('35r.txt', 'wb') as fw:
    f.write(f.read())

可以多个文件一起打开,只需要一个with就好,但是每个文件前面都需要加open,也要写as!“”表示他们在一行,只是写不下了才用“”这个标识分开写的,“”他只是要告诉python解释器这是个特殊意义的符号。

标签:文件,txt,encoding,read,三种,print,上下文,open,打开方式
来源: https://www.cnblogs.com/wwbplus/p/11329541.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有