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文件中,做成一个模块,进行调 ...
随机推荐
- NLP(二)_汉语言分词技术-最大匹配法
前述 词是自然语言中最小的有意义的构成单位.汉语文本是基于单字的文本,汉语的书面表达方式以汉字作为最小单元,词与词之间没有明显的界限标志,因此,分词是汉语文本分析处理中首先要解决的问题之一. 分词可能 ...
- socket长连接和短链接区别
短连接 连接->传输数据->关闭连接 HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束后就中断连接.短连接是指SOCKET连接后发送后接收完数据后马上断 ...
- java之字符串中查找字串的常见方法
1.int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引. int indexOf(String str, int startIndex):从指定 ...
- c语言中的string
1. strlen(char const* s); 函数传入的是c风格字符串(即以‘\0’结尾的字符数组),返回的长度为size_t(即unsigned int),其长度不包括'\0'. 2. str ...
- Codeforces Round #394 (Div. 2) A. Dasha and Stairs
A. Dasha and Stairs time limit per test:2 seconds memory limit per test:256 megabytes input:standard ...
- 释伴:Linux 上的 Shebang 符号(#!)
使用Linux或者unix系统的同学可能都对#!这个符号并不陌生,但是你真的了解它吗? 本文了将给你简单介绍一下Shebang(”#!”)这个符号. 首先,这个符号(#!)的名称,叫做”Shebang ...
- OC-如何隐藏NSLog打印的自带信息
#ifdef DEBUG #define NSLog(FORMAT, ...) fprintf(stderr,"%s\n",[[NSString stringWithFormat: ...
- 【PL/SQL编程】SQL与PL/SQL的区别
SQL概念: SQL是结构化查询语言,由数据定义语言.数据操纵语言.数据控制语言构成,它不面向过程,即前一条语句与后一条语句无关.它没有流程控制,也不存在变量. PL SQL概念: PL/SQL ...
- Chrome设置允许ajax跨域
最近在做一个前后端分离的项目,在Windows上用.Net WebApi时候的后端,在Mac上用ng2搭建的前端. 要实现前后端对接进行调试,就必须要解决ajax跨域的问题,实现方法如下: //在te ...
- windows 下多线程
unsigned uiThread2ID; HANDLE handle = (HANDLE)_beginthreadex(NULL, , ThreadUploadFun, NULL, CREATE_S ...