Py修行路 python基础 (七)文件操作 笔记(随时更改添加)
文件操作流程:
1、打开文件 open()
2、操作文件 read 、write
read(n) n对应读指定个数的
2.x中读取的是字节!
3.x中读取的是字符!
read 往外读取文件,是以光标位置开始的,每读取一个,光标就往后移动一位。
readline() 默认是读取一行的内容。(第一行)
readlines() 读取每一行的内容,组成一个列表。
readable() 判断文件是否是可读的
对文件更改权限 mode 可以变更
默认是读操作:r,encoding 指定编码方式
写操作w encoding 指定解码方式 直接写入会覆盖原文件中的内容!
文件刚打开的时候,会将之前的内容清掉,如果没有文件的话,会先创建一个文件,再在里边儿写入内容!如果文件不关,内容可以一直被写入进去!
追加 a 在光标位置后边进行追加
x 也是写操作,不过是文件没有就创建,有的话会报错,对原文件不会更改
调整光标的位置 f.seek(0) #将光标移到开始位置!不同于read()方法,是按照字节来移动的。
f.seek(1,0)从光标的开始位置往后读取
f.seek(3,1)从当前位置往后读取
f.seek(-3,2)从最后位置往前读取
# 该模式一定按字节操作!
seek的应用:比如断点续传。
显示多少字节 f.tell()
可读可写模式 r+ w+ a+
r+ 光标位置,追加写入
w+ 打开文件的时候,先把之前文件内容清掉,然后再写入内容,
a+ 总是在最后位置添加! 光标直接到最后位置,直接读取读不到任何东西
总结
r w a w:覆盖写 a:追加写
r+:默认光标在开始位置,写一定是追加写
w+:覆盖写,想读取内容:seek调整
a+:光标默认在文件最后位置,不管光标位置,一定是追加写;想读取内容:seek调整
rb wb ab 二进制操作
rb 直接将磁盘中的字节数据放到内存,不需要解码。 wb及ab与rb意思相同,同样的都是将数据以字节的方式写读,不经过解码。
flush操作
刷新操作,立即将缓存内的数据内容存到磁盘
应用:
#进度条:
import sys
(文件,标准输出,在屏幕上输出内容!先把数据放到缓存中,等操作结束之后,再直接输出显示!)sys.stdout.write("hello")
代码如下:
import sys,time for i in range(61):
s = "\r%d%% %s"%(i/60*100,"#"*i)
sys.stdout.write(s)
sys.stdout.flush()
time.sleep(0.5) '\r'是回车,'\n'是换行,前者使光标到行首,后者使光标下移一格,通常敲一个回车键,即是回车,又是换行(\r\n)。
for每循环一次,输出的结果都重新刷新一次,以实现进度条的功能!
with:
with open("文件",模式) as f: #f = open("文件",模式)
f.read()
文件更改
由于文件内容保存之后,就不能再更改。
只能是新建一个文件,从新写入内容,将原文件删掉,把新写的文件重命名。
3、关闭文件 close() 数据操作在文件关闭之前会一直存在内存,等文件关闭的时候,所有变更的数据会一次性的存到磁盘上。
Py修行路 python基础 (七)文件操作 笔记(随时更改添加)的更多相关文章
- Py修行路 python基础 (二十五)线程与进程
操作系统是用户和硬件沟通的桥梁 操作系统,位于底层硬件与应用软件之间的一层 工作方式:向下管理硬件,向上提供接口 操作系统进行切换操作: 把CPU的使用权切换给不同的进程. 1.出现IO操作 2.固定 ...
- Py修行路 python基础 (十五)面向对象编程 继承 组合 接口和抽象类
一.前提回忆: 1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均 ...
- Py修行路 python基础 (五)三元运算 字符编码 元组 集合 三级菜单优化!
三元运算 条件判断不能加冒号: a=3 b=5 c=a if a<b else b oct() 转成八进制的简写:16进制 标志:BH为后缀或是0x为前缀hex() 转成16进制 元组 跟列表是 ...
- Py修行路 python基础 (十二) 协程函数应用 列表生成式 生成器表达式
一.知识点整理: 1.可迭代的:对象下有_iter_方法的都是可迭代的对象 迭代器:对象._iter_()得到的结果就是迭代器 迭代器的特性: 迭代器._next_() 取下一个值 优点: 1.提供了 ...
- Py修行路 python基础 (二十一)logging日志模块 json序列化 正则表达式(re)
一.日志模块 两种配置方式:1.config函数 2.logger #1.config函数 不能输出到屏幕 #2.logger对象 (获取别人的信息,需要两个数据流:文件流和屏幕流需要将数据从两个数据 ...
- Py修行路 python基础 (十九)面向对象进阶(下)
item系列 __slots__方法 __next__ 和 __iter__实现迭代器 析构函数 上下文管理协议 元类一.item系列 把对象操作属性模拟成字典的格式. 例如:对象名['key'] ...
- Py修行路 python基础 (十一)迭代器 与 生成器
一.什么是迭代? 迭代通俗的讲就是一个遍历重复的过程. 维基百科中 迭代(Iteration) 的一个通用概念是:重复某个过程的行为,这个过程中的每次重复称为一次迭代.具体对应到Python编程中就是 ...
- Py修行路 python基础 (十八) 反射 内置attr 包装
一.isinstance 和 issubclass1.isinstance(obj,cls)检查是否obj是否是类 cls 的对象.2.issubclass(sub, super)检查sub类是否是 ...
- Py修行路 python基础 (二十)模块 time模块,random模块,hashlib模块,OS及sys模块
一.前提介绍: 可以开辟作用域的只有类,函数,和模块 for循环 if,else: 不能开辟自己的作用域 避免程序复用和重复调用,将这些写到一个.py文件中,做成一个模块,进行调 ...
随机推荐
- 【Demo】HTML5拖放--简单demo
用HTML5拖放功能编写一个简单的拖放Demo 单次拖放demo 效果: ------拖放前------- ------拖放后------- 实现代码: <!DOCTYPE html> ...
- IOS-社会化分享
一.如何实现社交分享 在iOS中,实现“社交分享”的方法 1.自己编写各个平台的分享代码(代码量较多) 2.利用iOS自带的Social.framework 3.利用第三方的分享框架 友盟分享 ...
- cassandra框架模型之二——存储机制 CommitLog MemTable SSTable
四.副本存储 Cassandra不像HBase是基于HDFS的分布式存储,它的数据是存在每个节点的本地文件系统中. Cassandra有三种副本配置策略: 1) SimpleStrategy (Rac ...
- java mybatis XML文件中大于号小于号转义(转载)
因为这个是xml文件不允许出现类似“>”这样的字符 用了转义字符把>和<替换掉,然后就没有问题了. XML转义字符 字段 符号 说明 < ; < 小于号 & ...
- 一个html+js+ashx+easyui+ado.net权限管理系统
http://www.cnblogs.com/oppoic/p/html_js_ashx_easyui_authorize.html
- 【机器学习基石笔记】九、LinearRegression
[一] 线性回归直觉上的解释 得到Ein = mean(y - wx)^2 [二] w的推导 Ein = 1/N || xw - y||^2 连续.可微.凸函数 在各个方向的偏微分都是0 Ein = ...
- 如何在JM8.6编码端提取QDCT?
毫无疑问,编码端的QDCT和解码端的QDCT完全相同,下面从编码端提取QDCT. 为简便起见,仅提取第一帧第一个宏块第一个4*4块的QDCT.JM8.6编码器最核心的编码函数是encode_one_m ...
- 关于Sublime Text不能在打开方式中显示并且不能被设置成默认打开方式的问题
解决方法: 1. Windows 输入 regedit 后 回车 打开注册表 2.找到 "HKEY_CLASSES_ROOT\Applications\sublime_text.exe\sh ...
- rebar安装及创建项目
rebar作为erlang开发中编译,构建,发布,打包,动态升级的常用工具,下面我记录下rebar工具的安装及使用 从源码安装rebar 1. 建立文件 install_rebar.sh 2. 拷贝如 ...
- bzoj 3195 奇怪的道路
Written with StackEdit. Description 小宇从历史书上了解到一个古老的文明.这个文明在各个方面高度发达,交通方面也不例外.考古学家已经知道,这个文明在全盛时期有\(n\ ...