当前位置: 首页 > news >正文

python学习-文件处理

文件处理有三个过程:打开文件、操作文件、关闭文件

一、打开文件

打开文件,需要指定文件的路径、打开方式(r w a r+ w+ a+ b)、编码方式

方法1:

1 f1 = open('testfile', mode='r', encoding='utf-8')
2 #操作文件
3 f1.close()

此方法,完成文件操作后,需要关闭文件,否则文件会一直在内存中存在,浪费资源

方法2:

1 with open('testfile',mode='r',encoding='utf-8') as f1, open('testfile1',mode='r',encoding='utf-8') as f2:
2     f1.read()
3     f2.read()

此方法,完成文件操作后,会自动关闭文件,不需要手动关闭,且支持同时打开多个文件,建议使用此方法。

 

二、操作文件

打开方式

在不同的打开方式下,支持的操作不同

'r'模式:只支持读,不支持写

‘w’模式:只支持写,不支持读

'a'模式:只支持追加,不支持读

‘r+’模式:既支持读,也支持写,但需要注意光标位置

‘w+’模式:既支持写,也支持读,但需要注意光标位置

'a+'模式:既支持追加,也支持读,但需要注意光标位置

以上所有模式都支持b,如‘r+b’,即以bytes类型读取文件,多用于处理非文字类文件,如图片,视频等

1 f1 = open('testfile', mode='w')
2 f1.write('中国'.encode('gbk'))
3 f1.close()

 

建议对文件操作时,不要同时同时进行读写操作,光标容易乱。

常用方法

read()     一次性读

readlines()  一次性读,把每一行作文一个元素,放在列表中

readline()  一行一行读,需要配合for循环完成整个文件的读,不适用非文字类文件,如图片和视频等,这些文件是按bytes为单位的。

write()

seek()  移动光标

tell()  获取光标当前位置

truncate()  截取文件

 

关闭文件

close()

 

转载于:https://www.cnblogs.com/ershoupaoche/p/9524061.html

相关文章:

  • 四、oracle 用户管理二
  • 3.字典常用功能
  • java多线程下载
  • MySQLdb的安装与使用
  • 谋势、聚力、强生态,用友三十而立
  • linux下svn服务器搭建
  • 聊聊sentinel的AuthoritySlot
  • element.style覆盖了我的样式!!
  • 折腾一天终于尝到了 signalr core了
  • IP地址便捷修改器 V3.5 绿色版
  • 解决子级用css float浮动 而父级div没高度不能自适应高度
  • 滴滴公布自查进展:免去黄洁莉顺风车事业部总经理职务
  • 浅谈HTML5单页面架构(一)——requirejs + angular + angular-route
  • DHCP的配置文档
  • 53次课( NFS介绍、 NFS服务端安装配置、NFS配置选项)
  • ES6 ...操作符
  • happypack两次报错的问题
  • JAVA SE 6 GC调优笔记
  • JAVA并发编程--1.基础概念
  • learning koa2.x
  • MySQL数据库运维之数据恢复
  • Python 反序列化安全问题(二)
  • Redis 中的布隆过滤器
  • RxJS: 简单入门
  • Solarized Scheme
  • tweak 支持第三方库
  • 分类模型——Logistics Regression
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 悄悄地说一个bug
  • 实习面试笔记
  • 项目管理碎碎念系列之一:干系人管理
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • #NOIP 2014# day.2 T2 寻找道路
  • ${ }的特别功能
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (1) caustics\
  • (1)bark-ml
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (3)llvm ir转换过程
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (Note)C++中的继承方式
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (分布式缓存)Redis持久化
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (十三)Maven插件解析运行机制
  • (算法)前K大的和
  • (小白学Java)Java简介和基本配置
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转)【Hibernate总结系列】使用举例
  • (转)为C# Windows服务添加安装程序