python day 12

目录

x模式(控制文件操作模式)

# 指针移动的单为单位的位都是以bytes字节

#         t模式下的read(n),n代表的是字符个数

#一,读关的操作

# 1,readline 一次读一行

# 2,readlines

# 二,写相关操作

# f.writelines()

#f.write()

# 写入字符或者bytes()类型字节

# 四,了解


x模式(控制文件操作模式)


x只写模式,不可读;不存在则创建,创建过了则报错
相当于判断文件是否存在

# with open('a.txt',mode='x',encoding='utf-8') as f:
#     pass

with open('c.txt',mode='x',encoding='utf-8') as f:
    f.read()
#     io.UnsupportedOperation: not readable

with open('d.txt', mode='x', encoding='utf-8') as f:
    f.write('哈哈哈\n')


# 指针移动的单为单位的位都是以bytes字节

# 只有一种特殊情况:


#         t模式下的read(n),n代表的是字符个数


# with open("d.txt","r",encoding="utf-8") as f:
#     res=f.read(4)
#     print(res)#哈哈哈h
# f.seek(n,模式)
# n指的时移动的字节个数
# 模式:
# 0:参照物是文件开头位置
# f.seek(3,0)
# 1:参照物是当前指针所在位置
# f.seek(3,1)
# 2:参照物是文件末尾位置,应该倒着移动
# f.seek(-3,2)
# 强调只有0模式可以在t下使用,1,2必须在b模式下使用
# f.tell()获取指针当前位置
# 示范
with open("h.txt","rb")as f:
    # f.seek(9,0)
    # print(f.tell())
    # f.seek(3,0)
    # print(f.tell())
    # print(f.read().decode())#从当前指针开始读取
    # f.seek(9,1)
    # print(f.tell())#9
    # f.seek(3,1)#1模式是从当前指针往后读取
    # print(f.tell())#12
    f.seek(-3,2)
    print(f.read().decode("utf-8"))#好

#一,读关的操作


# 1,readline 一次读一行


# with open("g","rt",encoding="utf-8") as f:
    # res1=f.readline()
    # res2=f.readline()
    # print(res2)
    # while True:
    #     line=f.readline() # 指定读的内容,每次读一行
    #     if len(line)==0:
    #         break
    #     print(line)
    #


# 2,readlines


# with open("g","rt",encoding="utf-8") as f:
#     res=f.readlines()
#     print(res)
# 3,f.read与f.readlines()都是一次性将内容读入内存,如果内存太过多会造成内存溢出,若还想将内容全部读入内存可以
# 利用循环,for循环和while循环

# 二,写相关操作


# f.writelines()


# with open("h.txt","wt",encoding="utf-8") as f:
    # l=["111\n","222","333"]
    # res1=f.writelines(l) def writelines(self, lines: List[AnyStr]) ->


#f.write()


# with open("h.txt","wt",encoding="utf-8")as f:
#     # f.write("111\n","222","333","444")
#     # TypeError: TextIOWrapper.write() takes exactly one argument (4 given)
#     f.write("111\n222\n333\n")

# 写入字符或者bytes()类型字节


# with open("h.txt","wb")as f:
    # l=[
    #     "111aaa\n".encode("utf-8"),
    #     "222bbb".encode("utf-8"),
    #     "333ccc".encode("utf-8")
    #
    # ]
    # 补充一下:如果存英文字符,可以直接加前缀b得到bytes类型
    # l = [
    #         b"111aaa\n",
    #         b"222bbb",
    #         b"333ccc"
    #
    #     ]
    # 补充二:”上“.enconding("utf-8")等同于bytes("上",encoding="utf-8")
    # l=[
    #     bytes("上啊",encoding="utf-8"),
    #     bytes("冲啊",encoding="utf-8"),
    #     bytes("小垃圾们",encoding="utf-8")
    # ]
    # f.writelines(l)


# 四,了解


# 1,f.flush()在w的模式下作用,把写入的数据立马从内从写入硬盘
# 操作系统是智能的,一点数据有时候不会立马写入硬盘,一般用于用于测试模式中
# with open("h.txt","wt",encoding="utf-8")as f:
#     print(f.readable())
#     print(f.writable())
#     print(f.encoding)
#     print(f.name)
#     print(f.closed)
"""
False
True
utf-8
h.txt
False

"""

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

右耳要加油

你们的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值