1.先了解计算机读写的原理(如下图)
2.文件的打开和关闭
2.1 open
在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件。
具体的格式: open(文件名,访问模式)
例如: file = open('我是文件名.txt','r')
2.2 close
close()
例如:
#建立一个为文件为:test.txt
file = open('test.txt','r')
#关闭这个文件
file.close()
2.3 读写模式
2.4 各种读写模式的具体写法
#这是r
file = open('测试.txt','r',encoding = 'utf-8')
content = file.read()
print(content)
file.close()
#这是w
file = open('我是标题.txt','w')
file.write('我是内容')
#file.write('我是覆盖')
file.close
#这是a
file = open('测试.txt','a')
file.write('我是附加内容')
file.close()
#这是rb
file = open('测试.py','rb')
content = file.read()
print(type(content))
print(content)
print(content.decode('utf-8'))
file.close()
#这是wb
file = open('测试.py','wb')
info = '我是内容'
info = info.encode('utf-8')
file.write(info)
file.close()
#这是ab
file = open('测试.py','ab')
info = '我是附加内容'
file.close()
#这是r+
file = open('测试.py','r+',encoding = 'utf-8')
print(file.read())
file.write('我是填写的内容')
file.close()
#这是w+
file = open('测试.py','w+')
file.write('1234567')
#调整指针到开头
file.seek(0)
content = file.read()
print(content)
file.close
#这是a+
file = open('测试.py','a+',encoding = 'utf-8')
file.write('我是附加内容')
file.close
2.5 编写模式注意问题(重要)、
1、建立测试的时候 使用EditPlus建立。防止出现文件编码格式改为utf-8的时候,多出文件头,错误代码如下:
2.注意文件的编码格式要与程序中的编码格式相同,否则出现一下错误代码
3、
r,w,a:
操作的都是字符
目标文件:文本文件
字符 = 字节+解码
rb,wb,ab:
操作的都是字节
目标文件:任何文件
4、read(): 读所有内容
read(num): 读取指定个数的内容
b'abc' = 'abc'.encode('utf-8')
5、open这里用了三个参数:包括:
文件的名字 模式 编码方式
其中编码格式应该与文件的编码格式一致。如果有中文,不一致就造成乱码。
6、读
read() 会读取所有内容,但是开发中一般不用,测试使用
7、关闭
close() 文件流是占用系统资源的,所以用完之后,记得关闭。否则,占用操作系统资源。
3.路径的说明
3.1 linux
3.2 windows
4.readline 和readlines
4.1 readlines(一行一行的读)
就像read没有参数时一样,readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素
file = open('静夜思.py','r',encoding='utf-8')
content = file.readlines()
print(content)
file.close()
4.1 readline(写一行遇见换行符就停止并输出)
file = open('静夜思.py','r',encoding='utf-8')
content = file.readline()
while content!='':
print(content)
content = file.readline()
file.close()
5.获取读写位置
5.1获取当前读写位置
file = open('老王.txt','r+',encoding='utf-8')
print(file.tell())
content = file.read()
print(file.tell())
file.close()
5.2 定位到任意位置
如果在读写文件的过程中,需要从另外一个位置进行操作的话,可以使用seek()
seek(offset,from) 其中offset是偏移量 from在python3中是0