python读写文件with open
2024-08-22 23:52:53
简介
使用python的过程中肯定少不了读取文件的操作,
传统的形式是使用 直接打开、然后在操作、然后再关闭,
这样代码量稍微大些不说,一旦在操作步骤中出现报错,则无法进行文件的关闭;
案例一(读取)
首先创建一个我们要读写的txt文件
txt内容如下:
z天赐复习文件读写
博客园地址:https://www.cnblogs.com/ztcbug/
一、读取文件 基本实现
f = open('test001.txt','r',encoding='utf-8') #open 是打开的意思,()中是要打开的文件路径 'r'是只读的方式打开,打开后赋值给f,如果读取文件有中文,encoding = utf-8是编码格式
print(f.read()) #read是读取的意思,f,read() 是读取f里的所有数据,然后print输出出来
f.close() #读取后,然后再把打开的f 给关闭,close()是关闭的意思,切记一定要关闭
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
返回结果如下
z天赐复习文件读写
博客园地址:https://www.cnblogs.com/ztcbug/
这样的缺点是如果我们在关闭文件前出现了程序报错,那么打开后的文件就没有进行关闭
二、读取文件 中级实现
try: #首先try一下,如果程序打开以及在打开后读取一系列操作后有报错,则不中断程序
f = open('test001.txt','r',encoding='utf-8')
file = f.read()
print(file)
finally: #无论try中的程序是否存在报错,则都执行下面的关闭
if f: #判断下f是否打开了,如果没打开则不需要关闭,打开了则关闭
f.close()
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
返回结果如下
z天赐复习文件读写
博客园地址:https://www.cnblogs.com/ztcbug/
可以看到这次对基本实现进行了优化,无论是否报错,我们都对打开后的文件进行了关闭
三、读取文件 终极实现
上面那种虽然好,但是代码太不简洁了,我们可以用with open的方式来写
with open('test001.txt','r',encoding='utf-8') as f:
file = f.read()
print(file)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
返回结果如下
z天赐复习文件读写
博客园地址:https://www.cnblogs.com/ztcbug/
案例二(写入)
一、写入文件 基本实现
还是用咱们刚才那个文件,刚才那个文件里的内容是 :
z天赐复习文件读写
博客园地址:https://www.cnblogs.com/ztcbug/
此时我们重新给这个文件 写入数据
f = open('test001.txt','w',encoding='utf-8') #open 打开要写入的文件,'w'就是写入的意思,如果有中文encoding进行编码
f.write('今天北京的天气非常好!!!!') #write是写入的意思,将()中的内容写入到f文件里
f.close() #写入完进行关闭
然后此时我们去看看 test001.txt 这个文件中的内容
写入成功
一、写入文件终极实现
with open('test001.txt','w',encoding='utf-8') as f: #使用with方法
f.write('今天去吃个黄焖鸡米饭!!!!') # 直接写入
然后此时我们去看看 test001.txt 这个文件中的内容
最新文章
- C++ tinyXML使用
- noip2016 Day1T3
- Bzoj3144 [Hnoi2013]切糕
- 第五章 搭建 S3C6.410 开发板的 测试环境
- s1=s1+1与s1+=1的区别
- Unity中的协程是什么?
- setup 桌面化设置网卡
- git 使用钩子直接推送到工作目录
- [react native] Error loading page
- Matlab中unifrnd函数使用解析
- hive 配置mysql元数据库
- 网络流相关(拓扑)CodeForces 269C:Flawed Flow
- C++内置类型对象之间的转换
- 误mlogc.c:32:23: error: curl/curl.h: No such file or directory
- React——state
- phpExcel导入大数据量情况下内存溢出解决方案
- 使用Ajax+jQuery来实现前端收到的数据在console上显示+简单的主页设计与bootstrap插件实现图片轮播
- SpringBoot 出现Whitelabel Error Page 解决办法
- 解决Ubuntu Chrome浏览器很卡不响应的问题
- it面试技巧