Python测试开发预习课7月2日

1、 文件操作:

固定流程:
1)打开文件 open with open
2) 操作 读 写 追加
3)关闭
读文件并且打印文件内容:

fp=open("e:\\a.txt","r",encoding="utf-8")
content = fp.read()
fp.close()
Print(content)

在这里插入图片描述

>>> fp=open("e:\\a.txt","r",encoding="gbk")
>>> content=fp.read()
>>> fp.close
<built-in method close of _io.TextIOWrapper object at 0x00000286A7DFD7E0>
>>> fp.close()
>>> content
'#encoding="gbk"\n123\n234'
>>> fp=open("e:\\a.txt","r")
>>> content=fp.read()
>>> fp.close()
>>> content
'#encoding="gbk"\n123\n234'
>>> print(content)
#encoding="gbk"
123
234

在这里插入图片描述

fp=open("e:\\a.txt","r")
content=fp.readlines()
fp.close()
for i in content:
    print(i,end="")

在这里插入图片描述

2、全部读read,readline

read:读取文件的全部内容,存到一个字符串里面
readlines:读取文件的全部内容,文件的内容放到一个列表里面
缺点:太占内存
如果你的内存:4g,你要读的文件是4.5g,你觉得会怎么样呢?
用空间换时间
用时间换空间

3、编码encoding

open encoding—>我用什么编码去读文件。
文件存的是什么编码,你就要用什么编码去读
文件存的是utf-8,encoding=utf-8
文件存的是utf-8,encoding=gbk去读,那么这个就会报错。

文件中存的内容在磁盘上,都是utf-8或者是gbk的编码内容(bytes类型)
读到python程序的时候,放到列表或者字符串变量里面
放的都是str类型

open帮你做一件事:
用encoding设定的编码,将文件中的bytes类型转化为str类型。
转化的过程实际上就是bytes.decode()方法的调用。

如果encoding的编码和文件中的不一致,必然会转换失败。

fp = open("e:\\a.txt",encoding="utf-8")
content = fp.readlines()
fp.close()

for line in content:
    if "\n" not in line:
        print(line)
    else:
        print(line,end="")

在这里插入图片描述

4、逐行打印:
fp = open("e:\\a.txt",encoding="utf-8")
for line in fp:#取到从磁盘上读取的一行,读取的量会很小
    print(line,end="")

fp.close()

在这里插入图片描述

5、写:清空写,追加写

fp = open(“e:\a.txt”,“w”,encoding=“utf-8”)

“w”:清空写,文件如果不存在,会自动创建文件。
如果文件已经在了,且有内容,直接全部清空。
在这里插入图片描述
write函数:写入必须用字符串,写入了之后,如果不够64kb内容
操作系统不会将写入的内容,存到磁盘中。
什么时候会存呢?
1)文件关闭
2)程序关闭(自动把文件关闭)
3)flush
在这里插入图片描述

fp = open("e:\\a.txt","a+")
fp.write("孙千丽1")
fp.write("孙千丽2")
fp.write("孙千丽3")
fp.close()

在这里插入图片描述

fp = open("e:\\a.txt","r+")
fp.read()#文件的游标最会到文件的最后了
fp.write("千丽1")
fp.write("千丽2")
fp.write("千丽3")
fp.close()

在这里插入图片描述

6、游标

你当前在文件中的位置
当你打开文件的时候,你当前位置是0,
写了一个字符或者读了一个字符,位置就变为1了。
然后写了n字符或者读了n个字符,位置就变为1+n了。
再读内容,只会读取1+n后面的所有内容
在写内容,只会从1+n的位置开始写,把原有的内容进行覆盖。

7、r+和a+的区别

r+:会根据你游标当前的位置去写入文件内容
a+:不管你游标在哪里,写的内容自动会跳转到文件的最后部分。

fp = open("e:\\a.txt","r+")
fp.seek(10,0)
print(fp.tell())
fp.write("--"*10)
fp.close()

在这里插入图片描述

追加写:"a+"  "r+"

fp = open("e:\\a.txt","a+")
fp.read(5)#文件的游标最会到文件的最后了
fp.write("光荣之路16")
fp.write("光荣之路17")
fp.seek(10,0)
fp.write("光荣之路18")
fp.close()
8、r+和a+的区别

r+:默认从文件的第一个字符开始写,如果使用了seek,定位
到了文件中的某个位置,则从这个位置开始写。如果read()后
改变了游标的位置,写的内容会追加到最后面
a+:不管你游标在哪里,写的内容自动会跳转到文件的最后部分。

>>> fp = open("e:\\a.txt","a+")
>>> fp.read()
''
>>> fp.seek(0,0)
0
>>> fp.read()
'1234567899--------------------678997767777777777\n12345678997767777777777光荣之
路16光荣之路17光荣之路18'
>>> fp = open("e:\\a.txt","r+")
>>> fp.read()
'1234567899--------------------678997767777777777\n12345678997767777777777光荣之
路16光荣之路17光荣之路18'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值