文件操作的相关

文件操作

1.对文件内部的内容进行操作

1.open("文件路径",mode = "模式",encoding = "编码")

文件路径:

1.绝对路径

E:studyPday1123.py 这就是绝对路径

2.相对路径

相对于当前这个程序所在的⽂件夹⽽⾔,同一文件夹下的文件

..day1123.py

模式: w r a b w+ r+ a+ wb rb ab

w:写,只能写模式

r:读,只读模式

a:追加,只能写模式

w+:写读模式

很少用,因为无论是先写还是先读,w+会把原来的文本全部删除然后在写入或读取,写入后 光标在文本末尾

r+:读写模式

r+读写模式:一开始就写操作的话,写的数据会覆盖掉对应的开头数据,并且写入的是字节

r+读写模式,如果你进行读操作后,在写操作的话,会在文本的末尾写上数据,写入的也是字节,与光标无关

 

a+:追加读模式

a+追加读模式,无论是一开始就进行写操作还是先进行读操作再写都是在文件的末尾增 加数据

b:bytes,这里处理文件的时候是字节,用于处理非文本文件的时候有带b的

wb:写字节

rb:读字节

ab:追加字节

下面的一般用于断点

w+b:

r+b:

a+b:(用于断点续传)

2.光标

r:光标在开头

w:光标在开头(因为w的原因文件里面的内容都被干掉了)

a:光标在末尾

r+:光标在开头

w+:光标在开头(因为w的原因文件里面的内容都被干掉了)

a+:光标在末尾

 

3.调用函数r

f = open("../day1/files1/test.txt",mode = "r",encoding = "utf-8")

f.read() #读取整个文件,这里注意如果文件过大会造成内存溢出

f.read(3) #读取文件的第三个字节

f.readline() #读取文件的一行

 

 

 

 

 

为什么会出现这个问题呢?因为readine读完文档后以 结尾,print执行完后也是以 结尾,就 会导致两个 一同出现的局面,下面给个更直观的数据

 

我们可以通过strip()来删除空格和

readline还可以循环迭代:

这里迭代实际上是调用readline()

 

f.readlines() #读取文件的所有行,这里注意如果文件过大会造成内存溢出

f.seek() #移动光标

seek(offset[,whence]),offset是偏移量,也就是光标移动的字节数,whence,可选,默认值为 0,表示光标要从哪个位置开始偏移,0表示从文件开头开始偏移,1表示从光标当前位置开 偏移,2表示从文件末尾开始偏移.

f.trancate() #截取文件,默认为把光标后面的数据干掉,也可以指定位置截断,单位是字节

 

2.修改文件以及另一种打开文件的方式

1.使用os模块对文件及其文件内容进行操作和修改

 

原文地址:https://www.cnblogs.com/zy740/p/11037998.html