'''
什么是文件?
文件就是操作系统提供给用户/应用程序的一种单位,
该虚拟单位直接映射的是硬盘空间
为何要处理文件?
用户/应用程序直接操作文件(读/写)经过操作系统被转换成具体的硬盘操作
从而实现将内存中的数据永久保存到硬盘中
如何使用文件
文件处理的三个步骤
f = open(r'c.txt',mode='r',encoding = 'utf-8')
# r'c.txt' raw_str'c.txt'
# 文件对象(应用程序的内存资源)---->>操作系统打开的文件(操作系统内资源)
print(f)
data = f.read()
f.close()
#向操作系统发送信号,让操作系统关闭打开的文件,从而回收操作系统的资源
#上下文管理就是管理回收操作系统的资源
with open(r'c.txt',mode='r',encoding='utf-8') as f:
#读写文件的操作,会自动关闭打开的文件,回收操作资源
r模式:只读模式,在文件不存在时直接报错,文件存在文件指针就会跳到文件开头
with open(r'c.txt',mode='rt',encoding='utf-8') as f:
print(f.read())
#你好啊
hello
我擦类
print(f.readable())
#True
print(f.writable())
#False
f.write('hello')
#Eorror io.UnsupportedOperation: not writable 不能写
data=f.read()
print(data,type(data)) #读文件是'str'类型
#你好啊
hello
我擦类 <class 'str'>
#Bytes类型转换成utf-8
with open(r'c.txt',mode='rb') as f:
data=f.read()
print(data,type(data)) #Bytes
res=data.decode('utf-8')
print(res)
'''
#with open(r'/Users/ooc/Desktop/Python 学习笔记/day07/c.txt',mode='rt',encoding='utf-8') as f:
# 打开c.txt 相对路径,mode是r读t文本文件,必须要用字符编码
# 绝对路径/Users/ooc/Desktop/Python 学习笔记/day07/c.txt
# line=f.readline() #读一行到换行符
# print(line,end='')#end=''更改print自带换行符
'''
line1=f.readline()
print(line1,end='')
line2 = f.readline()
print(line2,end='') #文件未关闭 所以上一条print打印了第一行
光标在第一行换行符 第二条print line2
的时候从光标所在的地方开始打印一条
所以打印了文本中的第二条
# lines=f.readlines() # 每一行变成一个元素,形成一个列表
# print(lines)
#['asd
', 'sadfas
', 'safas
', '啊
', '啦
', '嘛
']
# 循环读文件内容的方法:
with open(r'/Users/ooc/Desktop/Python 学习笔记/day07/c.txt',mode='rt',encoding='utf-8') as f:
for line in f:
print(line,end='')
#打印一行 没有关闭文件 接着打印下一行
'''
#不同系统有所差别
'''
f = open(r'c.txt', mode='r', encoding='utf-8')
# mac系统默认utf-8,windows用gbk
print(f)
data = f.read()
print(data)
f.close()
f = open(r'c.txt', mode='w', encoding='utf-8')
f.write('asd')
print(f)
'''