文件操作

文件的使用

  • 文件的使用方式:打开-操作-关闭
  • 文本文件&二进制文件,open( , )和.close()
  • 文件内容的读取:.read() .readline() .readlines()
  • 数据的文件写入:.write() .writelines() .seek()
# 'r' 只读模式,默认值,如果文件不存在,返回FileNotFoundError
# 'w' 覆盖写模式,文件不存在则创建,存在则完全覆盖
# 'x' 创建写模式,文件不存在则创建,存在则返回FileExistsError
# 'a' 追加写模式,文件不存在则创建,存在则在文件最后追加内容
# 'b' 二进制文件模式
# 't' 文本文件模式,默认值
# '+' 与r/w/x/a一同使用,在原功能基础上增加同时读写功能
# f = open("f.txt") #- 文本形式、只读模式、默认值
# f = open("f.txt", "rt") #- 文本形式、只读模式、同默认值
# f = open("f.txt", "w") #- 文本形式、覆盖写模式
# f = open("f.txt", "a+") #- 文本形式、追加写模式+ 读文件
# f = open("f.txt", "x") #- 文本形式、创建写模式
# f = open("f.txt", "b") #- 二进制形式、只读模式
# f = open("f.txt", "wb") #- 二进制形式、覆盖写模式
# #文本形式打开文件
# tf = open("f.txt", "rt")
# print(tf.readline())
# tf.close()
#
# #二进制形式打开文件
# bf = open("f.txt", "rb")
# print(bf.readline())
# bf.close()
# 操作方法 描述
# <f>.read(size=-1) # 读入全部内容,如果给出参数,读入前size长度
# >>>s = f.read(2) # 中国
# <f>.readline(size=-1) # 读入一行内容,如果给出参数,读入该行前size长度
# >>>s = f.readline() # 中国是一个伟大的国家!
# <f>.readlines(hint=-1) # 读入文件所有行,以每行为元素形成列表 如果给出参数,读入前hint行
# >>>s = f.readlines() # ['中国是一个伟大的国家!']
# fname = input("请输入要打开的文件名称:")
# fo = open(fname,"r")
# txt = fo.read()
# #对全文txt进行处理
# fo.close()
# fname = input("请输入要打开的文件名称:")
# fo = open(fname,"r")
# txt = fo.read(2)
# while txt != "":
# #对txt进行处理
# txt = fo.read(2)
# fo.close()
# fname = input("请输入要打开的文件名称:")
# fo = open(fname,"r")
# for line in fo.readlines():
# print(line)
# fo.close()
# fname = input("请输入要打开的文件名称:")
# fo = open(fname,"r")
# for line in fo:
# print(line)
# fo.close()
# # 向文件写入一个字符串或字节流
# # <f>.write(s)
# >>>f.write("中国是一个伟大的国家!")
#
# # 将一个元素全为字符串的列表写入文件
# # <f>.writelines(lines)
# >>>ls = ["中国", "法国", "美国"]
# >>>f.writelines(ls)
# 中国法国美国
# <f>.seek(offset)
# 改变当前文件操作指针的位置,offset含义如下:
# 0 – 文件开头; 1 – 当前位置; 2 – 文件结尾
# f.seek(0) #回到文件开头
# Windows从硬盘读取文件默认GBK
# Linux和Mac默认utf-8
# Python3里内存的数据编码是unicode,前提是内容是文本,不是图片之类的
# t模式读写是以字符串为单位,也就是unicode
# 存到硬盘需要编码为其他编码,最好是utf-8
# Windows上文件路径用的是反斜杠,需要转义,那两个平台不需要
# Windows 换行 \r\n
# Linux \n
# Mac 以前用\r 现在是\n
# Python会自动转换
# 一次修改多行,shift +alt 选择要删除的地方,然后输入
# 将文本数据编码,英文数字 b'12dg' 也可以用下边的
# 含有中文 bytes ('你好',encoding='utf-8')
# '你好'.encoding('utf-8')
# 文件 只有t模式read(n)的n是字符,其他都是字节
# seek的12模式都不能在t模式下使用,0模式可以用,但是一般不用
# fo = open("output.txt","w+")
# ls = ["中国","法国","美国"]
# fo.writelines(ls)
# for line in fo:
# print(line)
# fo.close()
# fo = open("output.txt","w+")
# ls = ["中国","法国","美国"]
# fo.writelines(ls)
# fo.seek(0)
# for line in fo:
# print(line)
# fo.close()