文件操作_26th,Nov 2018
文件:操作系统问应用程序或用户提供一种操作硬盘的虚拟单位
--文件时操作系统提供的虚拟单位
--应用程序或用户对文件的读写操作都是向操作系统发送指令
--文件包括文本文件和二进制文件
为何要用文件:文件对应硬盘空间,如果需要永久保存数据,必须用到文件
如何用文件:绝对路径:从根目录开始
相对路径:相对于当前执行文件所在文件夹
文件的操作:
1.打开文件:f=open("绝对路径或相对路径", mode="读或写模式",encoding='utf-8')
--该种打开方式必须配合close()函数使用
with open("绝对路径或相对路径", mode="读或写模式",encoding='utf-8') as f:
--该模式打开不需要close()函数
文件的打开模式: 'r' 默认只读,如果文件不存在,报错
'w' 覆盖写模式,文件不存在则创建
'a' 追加写模式,文件不存在则创建
'b' 二进制文件模式
't' 文本文件模式,默认
'+' 与r/w/a 同时使用,在原功能基础上同时增加读写功能
2.文件内容的读取:
f.read(): 读入全部内容
f.readline() 读入一行内容
f.readlines()读入全部内容,分行处理
3.文件写入:(w - 覆盖写模式, a- 追加写模式)
f.write(s) 向文件写入一个字符串或字节流
f.writelines(lines) lines为一个列表
f.seek(offset) offset( 0- 文件开头, 1-当前位置, 2- 文件结尾)
4.文件修改的两种方式:
方式一:1. 以读的方式打开源文件
2.将文件内容一次性全读入内存,在内存完成修改
3.以写的方式打开源文件,然后将修改的结果一次写入源文件
总结:优点是在文件修改过程中硬盘只存在一份数据、缺点是浪费内存
例:
with open('b.txt',mode='rt',encoding='utf-8') as read_f:
mag=read_f.read()
new_msg=mag.replace('a', 'b')
with open('b.txt', mode='wt', encoding='utf-8') as write_f:
write_f.write(new_mag)
方式二:1.以读的方式打开源文件,以写的方式打开一个临时文件
2.读取源文件的一行内容到内存中,将修改的结果写入临时文件,循环往复直到改完
3.删除源文件,将临时文件名该为源文件名
总结:优点:同一时间在内存中只有一行内容,更节省内存,缺点:文件修改过程中硬盘存两份数据
import os
with open('b.txt', mode='rt', encoding='utf-8') as read_f,\
open('.b.txt.swap', mode='wt', encoding='utf-8') as write_f:
for line in read_f:
write_f.write(line.replact('a', 'b') os.remove('b.txt')
os.rename('.b.txt.swap', 'b.txt')
5. 指针 seek () 函数: 移动以字节为单位
0(默认):参照文件开头(强调:只有0模式下既可以使用 t 模式,又可以使用 b 模式)
1 : 参照指针当前所在位置(只能在b 模式下使用)
2 : 参照文件末尾 (只能在 b 模式下使用)
例: f.seek(-5,2) 将指针先移到末尾在向左移动5个字节
强调: 只有在 t 模式下 read(n) 中的 n 代表字符个数,除此之外 都代表 n 个字节
文件操作_26th,Nov 2018的更多相关文章
- 廖雪峰js教程笔记14 file文件操作
在HTML表单中,可以上传文件的唯一控件就是<input type="file">. 注意:当一个表单包含<input type="file" ...
- [Linux]目录x权限对文件操作的影响
问题 我们常使用linux以下命令 cd 进入目录 ls 列出目录中的文件 或者直接打开目录中的文件 以上操作对于目录权限位的设置来说,是有一定迷惑性的,如表格所示 cd进入该目录 cd进入该目录 ...
- python3csv与xlsx文件操作模块(csv、xlsxwriter)
一.csv模块实现csv文件操作 1.CSV介绍 CSV,全称为Comma-Separated Values,它以逗号分隔值,其文件以纯文本形式存储表格数据,该文件是一个字符序列,可以由任意数目的记录 ...
- Python学习—基础篇之文件操作
文件操作 文件操作也是编程中需要熟练掌握的技能,尤其是在后台接口编写和数据分析过程中,对各种类型的文件进行操作,获取文件信息或者对信息进行存储是十分重要的.本篇博客中将主要对常见的文本格式文件和Exc ...
- Python 自学基础(一)——元组 字典 文件操作
格式化输出 name = input("请输入你的名字:") age = input("请输入你的年龄:") msg = ''' -------------in ...
- Nodejs学习笔记(4) 文件操作 fs 及 express 上传
目录 参考资料 1. fs 模块 1.1 读取文件fs.readFile 1.2 写入文件fs.writeFile 1.3 获取文件信息fs.stat 1.4 删除文件fs.unlink 1.5 读取 ...
- 013.Python的文件操作
一 文件操作 fp = open("打开的文件",mode="模式选择",encoding="编码集") open 函数 返回一个文件io对 ...
- 字符编码和python文件操作
字符编码和文件操作 目录 字符编码和文件操作 1. 字符编码 1.1 什么是字符编码 1.2 字符编码的发展史 1.2.1 ASCII码 1.2.2 各国编码 1.2.3 Unicode 1.3 字符 ...
- 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档
.net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...
随机推荐
- NOI2017 游记
成功在NOI2017退役……现在的我已经是一只退役狗了 结果也一直到了退役,我都还不会半平面交,不会单纯形,不会非旋转版Treap…… FWT我也不熟,分治FFT我也只写过一道板子题 但是现在已经退役 ...
- PHP Warning: Module 'memcache' already loaded in Unknown on line 0
出现类似PHP Warning: Module * already loaded in Unknown on line 0,一般是可能因为升级php导致的组件重复加载,解决就是 1.vi /etc/p ...
- 一:requests爬虫基础
一,什么是爬虫? 描述: 本质是一个自动化程序,一个模拟浏览器向某一个服务器发送请求获取响应资源的过程. 爬虫的基本流程 robots.txt协议 编写一个robots.txt的协议文件来约束爬虫程序 ...
- [转][JSBSim]JSBSim的使用--飞行控制组件及其配置
http://www.jianshu.com/p/b5e9f1f5df95 飞行控制率.稳定增强系统.自动驾驶仪和其他飞控系统(航电.电气等)都能够在 JSBSim 中以独立的控制组件进行建模.JSB ...
- AndroidImageSlider第一张图闪过的问题解决
1. AndroidImageSlider的使用: 参考源码:https://github.com/daimajia/AndroidImageSlider 当然网上介绍使用方法的很多,搜一搜. 2. ...
- 学习笔记32—python常见问题及解决办法
1.Anaconda3 中 Spyder 无法打开/点击没有反应 应对方法 1).通过pip安装pyqt5:pip install pyqt5 2).输入以下命令:spyder --new-insta ...
- Golang简单日志类
实现简单的日志写入文件功能运行环境:golang1.4.2+win7x64golang1.4.2+centos6.5×64 package Helper import ( “fmt” “log” “o ...
- Yandex.Algorithm 2018, final round
Yandex.Algorithm 2018, final round A Smart Vending B LIS vs. LDS C Eat And Walk D Search Engine E Gu ...
- mui 访问系统相册将图片显示到网页
访问系统相返回值为一个对象,通过转换为字符串可以查看,path.files[0]为返回路径去除路径赋值到src 调用摄像头返回的相片的path为一个路径通过 plus.io.resolveLocalF ...
- HeadFIrst Ruby 第二章总结 methods and classes
HeadFIrst Ruby 第二章总结 methods and classes 前言 这一章讲了如何创建自己的 class,并且讲了在用 class 创建 object 的两个要素: instanc ...