python 全栈 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() 数据操作在文件关闭之前会一直存在内存,等文件关闭的时候,所有变更的数据会一次性的存到磁盘上。

时间: 2024-10-05 18:36:22

python 全栈 python基础 (七)文件操作 笔记(随时更改添加)的相关文章

python 全栈 python基础 (五)三元运算 字符编码 元组 集合 三级菜单优化!

三元运算 条件判断不能加冒号: a=3 b=5 c=a if a<b else b oct() 转成八进制的简写:16进制 标志:BH为后缀或是0x为前缀hex() 转成16进制 元组 跟列表是一样一样的!但它是只读列表,没有更改的权限! dir() 把传入的数据类型的,所有方法以列表的形式返回.作用: 明确的表示 元组里存储的数据是不应该被修改的!!! list(tuple元组) 变成列表 tuple(list列表) 变成元组 集合 setlinux ={"","&q

python 全栈 python基础 (二十一)logging日志模块 json序列化 正则表达式(re)

一.日志模块 两种配置方式:1.config函数 2.logger #1.config函数 不能输出到屏幕 #2.logger对象 (获取别人的信息,需要两个数据流:文件流和屏幕流需要将数据从两个数据流中接收) 1.函数式简单配置 import logging logging.debug('debug message') logging.info('info message') logging.warning('warning message') logging.error('error mes

python 全栈 linux基础 (部分)网络 SSH 更名 DNS解析 元字符

nginx---> web ifconfig 查看网络配置信息 id add show 查看当前网卡信息(最小安装下) mtu 是指网卡传输的最大单元 单位:字节 网卡配置 临时配置 ifconfig 网卡名 IP地址/子网 DNS:vim /etc/resolv.conf 网关: (填加)route add default gw 网关  netmask 255.255.255.0 (删除)route del default gw 网关  netmask 255.255.255.0 查看配置:r

python 全栈 python基础(六)前期基础整理

计算机中,有且仅有CPU具有执行权限,能够执行指令的只有CPU! 人在应用程序上输入的文字或文本,叫做明文! 在屏幕上输入或是输出的是字符,计算机保存的是 有字符编码的 二进制数. 变量赋值规则:例如:a=1 先在内存中开辟一块空间,存放数1,内存上会有一个相对应的id号,然后变量a指向这块内存区域和id号,python编译器有垃圾清除的功能,若开辟的这块内存区域一段时间内不调用,数据就会被清除,为其他的数据腾空间. python2 容错率高,自作聪明的完成转码拼接. python3 将字节类型

python全栈开发基础【第十八篇】网络编程(socket)

一.网络协议 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构(互联网中处处是C/S架构):B/S架构也是C/S架构的一种,B/S是浏览器/服务器 C/S架构与socket的关系:我们用socket就是为了完成C/S架构的开发 osi七层 引子: 须知一个完整的计算机系统是由硬件.操作系统.应用软件三者组成,具备了这三个条件,一台计算机系统就可以自己跟自己玩了(打个单机游戏,玩个扫雷啥的) 如果你要跟别人一起玩,那你就需要上网了,什么是互联网? 互联网的核心就是由一堆协议组成

python全栈开发基础【第十九篇】进程

一.什么是进程 进程:正在进行的一个过程或是一个任务.而负责执行任务的是CPU. 举例:(单核+多道,实现多个进程的并发): 比如说你就是一个CPU,你下午有几个活要干,吃饭,洗衣服,上厕所等.但是就在那一下午要把所有的事干完(而CPU同一时间只能干一件事),那么如何才能让多个任务实现并发执行的效果呢?那么,你应该这样做,你可以先做饭,在等待饭熟的过程中你可以去洗个衣服,洗的差不多饭也就熟了,那么你在去上个厕所也可以嘛. 二.进程与程序的区别 程序仅仅只是一堆代码而已,而进程指的是程序的运行过程

python全栈开发基础【第二十六篇】(concurrent.futures模块、协程、Greenlet、Gevent)

注意 1.不能无限的开进程,不能无限的开线程最常用的就是开进程池,开线程池.其中回调函数非常重要回调函数其实可以作为一种编程思想,谁好了谁就去掉 2.只要你用并发,就会有锁的问题,但是你不能一直去自己加锁吧那么我们就用QUEUE,这样还解决了自动加锁的问题由Queue延伸出的一个点也非常重要的概念.以后写程序也会用到这个思想.就是生产者与消费者问题 一.Python标准模块--concurrent.futures(并发未来) concurent.future模块需要了解的 1.concurent

python 全栈 python基础 (十六)面向对象编程的 继承 多态与多态性 封装

一.继承顺序: 多继承情况下,有两种方式:深度优先和广度优先 1.py3/py2 新式类的继承:在查找属性时遵循:广度优先 继承顺序是多条分支,按照从左往右的顺序,进行一步一步查找,一个分支走完会走另一个分支(若多条分支汇总一个头,除最后一条分支能走到头,其他的都走到次之位置停止,进行下一条分支的查找),直到查找到头为止. 可以利用 类名.__mro__ 的方法查看类之间的继承关系(经典类没有这种方法) 1 class B(object): 2 def func(self): 3 print('

&lt;python全栈开发基础&gt;学习过程笔记【18d】os模块

os模块调用操作系统,对文件和文件夹进行操作 1.头文件 impoet os 2os.getcwd() 作用:当前脚本工作的目录路径 print(os.getcwd()) 输出: ========================== RESTART: D:/haha/18_1.py ========================== D:\haha 2.os.chdir("目录名") 作用:改变当前脚本工作目录 os.chdir("d:\\Python") pri