python 文件模式

# 1.打开文件
# open('文件路径',mode='打开文件的模式',encoding='操作文件的字符编码')
# f=open(r'a.txt',mode='r',encoding='utf-8')#本身是个变量
# 打开一个文件占两方面资源,操作系统级打开的文件+应用程序的变量。



# 应用程序向操作系统发起打开文件请求,操作系统从硬盘读取文件
#r===>rawstring 原声的字符串,里面的特殊字符就是普通字符
# 2.读/写
# data=f.read()
# print(data)

# 3.关闭文件
# f.close()#回收操作系统的资源


# with open(r'a.txt',mode='r',encoding='utf-8') as f:
#     print(f.read())

# with open(r'a.txt',mode='r',encoding='utf-8') as f1,open(r'a2.txt',mode='r',encoding='utf-8') as f2:
# 打开多个文件


# 默认打开模式的rt模式,r代表只读,t代表文本文件
#默认打开文件的编码是:操作系统的编码
# f=open('a.txt','r',encoding='utf-8')
# # f.write('踩踩踩踩踩\n')
# print(f.readlines())

# with open(r'a.txt',encoding='utf-8') as f:
    # for line in f:#f就像一个老母鸡,需要时就下蛋
    #     print(line,end='')#end='' 把自带的换行符去掉

    # for line in f.readlines():
# readlines
# 创建一个列表,把文件全部读出来,在内存占用一个空间,不应该用这种方式
# 在文件过大的情况下会撑爆内存
# #在文件过大的情况下会撑爆内存
#     print(line,end='')


# 文件模式
# 文件默认的打开模式是t模式:文本模式

# r. 只读模式【默认模式,文件必须存在,不存在则抛出异常】
# f.read() #打开时光标在文件最开头,read读完后,光标移到文件最末端,无法再次读到内容
# print(f.readline(),end='')   一次只读一行,end=''把后面换行符去掉
# print(f.readlines()) # 全部把所有文件读出来,把行为单位为一个字符串添加到一个列表中
# 打开时光标在文件最开头,read读完后,光标移到文件最末端,再次使用读取模式,无法再次读到内容
# with open(r'a.txt', encoding='utf-8') as f:
#     print(f.readlines())
#     print(f.readlines())
#     print(f.readlines())
#     print(f.readlines())
#     print(f.readlines())

# w,只写模式【不可读;不存在则创建;存在则清空内容】
#当文件存在时,清空
# 当文件不存在,创建一个空文档
# f=open('a1.txt','w',encoding='utf-8')
# f.write('第一行\n')
# f.write('第二行\n')
#
# f.writelines(['111\n','222\n'])
# 可以把一个列表或者元组放进来,然后列表当中可以有多行内容
#但必须自己加上换行
#可以把一个列表中的值for循环取出来往文件里面write一次
#f.write('第一行\n第二行\n')
# f.close()


# a,只追加写模式【不可读,报错;不存在则创建;存在则只追加内容】
# f=open('a1.txt','a',encoding='utf-8')
#在文件不存在时创建空文件
#在文件存在时,光标直接跑到文件末尾
# f.write('444444\n')
# 通常日志文件使用a模式  .log
# f.close()

#需要掌握的方法
# f.read() #读取所有内容,光标移动到文件末尾
# f.readline() #读取一行内容,光标移动到第二行首部
# f.readlines() #读取每一行内容,存放于列表中
#
# f.write('1111\n222\n') #针对文本模式的写,需要自己写换行符
# f.write('1111\n222\n'.encode('utf-8')) #针对b模式的写,需要自己写换行符
# f.writelines(['333\n','444\n']) #文件模式
# f.writelines([bytes('333\n',encoding='utf-8'),'444\n'.encode('utf-8')]) #b模式


# rb
# wb
# ab
# 注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

# "+" 表示可以同时读写某个文件
# r+, 读写【可读,可写】
# w+,写读【可读,可写】
# a+, 写读【可读,可写】
#
# x, 只写模式【不可读;不存在则创建,存在则报错】
# x+ ,写读【可读,可写】
# xb

猜你喜欢

转载自blog.csdn.net/qq_42721964/article/details/81175505