# 同一个相对路径下,可以直接用文件名
# 不在同一路径下,需要使用绝对路径
# 需要指定编码方式,需要跟打开的文件编码格式一致,open函数会读取操作系统的默认编码,Windows的默认编码是gbk,如果不指定会报错
# f = open('文件名', encoding='utf8')
# data = f.read()
# print(data)
# f.close()
# 使用后需要关闭文件
#文件打开模式
#r 只读 w只写 a
#一般打开默认是只读
文件处理相关模式整理
| 模式 | 描述 |
| r |
以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
| rb |
以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
| r+ |
打开一个文件用于读写。文件指针将会放在文件的开头。 |
| rb+ |
以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
| w |
打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
| wb |
以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
| w+ |
打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
| wb+ |
以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
| a |
打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
| ab |
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
| a+ |
打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
| ab+ |
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
#################################读##########################################
# f = open('文件名', encoding='utf8')
# print(f.readable()) #文件是否可读,返回布尔值
# print(f.readline(),end='') #一次读一行,下次读下一行,end=‘’代表 不要换行,不加会多一个空行
# print(f.readline(),end='') #读取的内容也都是字符串类型
# print(f.readline(),end='')
# print(f.readline(),end='')
# data = f.readlines()
# print(data) #输出一个列表,将每一行作为一个元素
#######################################写###################################################
# f=open('文件名','w',encoding='utf8') #只写 新建一个新文档,若原来存在则覆盖原文档
# f.write('111111111\n') #写入 \n换行 写入的东西必须是str
# f.write('eeeeeeeeee\n')
# f.writelines(['111321111\n','11111ds111\n']) #一个列表,多行
# f.writable()
#######################################a###############################################
# f=open('文件名','a',encoding='utf8') #写模式,追加,不会清空
# f.write('追加\n')
###################################r+可读可写##########################################
# f=open('xxxx','r+',encoding='utf8') #可读可写,写的内容追加到文件后面
# data = f.read()
# print(data)
# f.write('xin\n')
#####################################with##########################################
# with open('ssd','w') as a: #使用with 打开文档后,不用添加close,系统会自动回收
# a.write('dfdfd')
###################################b模式########################################
#字节 二进制打开,不能指定编码格式,
#读
# f=open('ssd','rb',)
# data = f.read()
# print(data) #b'dfdfd\r\n21212\r\n\xe4\xbd\xa0\xe5\xa5\xbd\r\n \r\n代表换行
# print(data.decode('utf-8')) #解码 dfdfd 21212 你好
#写
# f=open('ssd','wb',)
# f.write(bytes('你好\n',encoding='utf-8')) #写入,编码,将写入的内容转换成二进制形式
# f.write('养好'.encode('utf-8'))
#
# f=open('ssd','ab',)
# f.write(bytes('你好\n',encoding='utf-8')) #写入,编码,将写入的内容转换成二进制形式
# f.write('养好'.encode('utf-8'))
#########################其他################################################
# f = open('ssd','r',encoding='utf-8',newline='') #读取文件中真正的换行符,基本不用
# #print(f.encoding) #查看文件编码
# print(f.readline())
# print(f.tell())
# f.seek(3) #指定文件光标位置 字节
# print(f.tell()) #读取文件光标位置 字节
# with open('ssd', 'r') as f:
# data = f.read()
# print('context: {}'.format(data))