''' 1 什么是文件 文件是操作系统为用户/应用程序提供的一种操作硬盘的抽象单位 2 为何要用文件 用户/应用程序对文件的读写操作会由操作系统转换成具体的硬盘操作 所以用户/应用程序可以通过简单的读\写文件来间接地控制复杂的硬盘的存取操作 实现将内存中的数据永久保存到硬盘中 user=input('>>>>: ') #user="egon" 3 如何用文件 文件操作的基本步骤: f=open(...) #打开文件,拿到一个文件对象f,f就相当于一个遥控器,可以向操作系统发送指令 f.read() # 读写文件,向操作系统发送读写文件指令 f.close() # 关闭文件,回收操作系统的资源 上下文管理: with open(...) as f: pass '''
open(r'D:\SH_fullstack_s3\day07\a.txt')f=open(r'a.txt',encoding='utf-8') #向操作系统发送请求,要求操作系统打开文件
print(f) # f的值是一个文件对象print(f.read())
f.close() # 向操作系统发送请求,要求操作系统关闭打开的文件print(f) f.read()
强调:一定要在程序结束前关闭打开的文件
上下文管理with with open(r'a.txt',encoding='utf-8') as f,\ open('b.txt',encoding='utf-8') as f1: print(f.read()) print(f1.read())
'''一 文件的打开模式 r: 只读模式L(默认的) w: 只写模式 a: 只追加写模式
二 控制读写文件单位的方式(必须与r\w\a连用) t : 文本模式(默认的),一定要指定encoding参数 优点: 操作系统会将硬盘中二进制数字解码成unicode然后返回 强调:只针对文本文件有效
b: 二进制模式,一定不能指定encoding参数 优点:
'''
with open('a.txt',mode='rt',encoding='utf-8') as f: data=f.read() print(data,type(data))
with open('1.png',mode='rt',encoding='utf-8') as f: data=f.read()
with open('1.png',mode='rb',) as f: data=f.read() print(data,type(data))
with open('a.txt',mode='rb',) as f: data=f.read() # print(data,type(data)) print(data.decode('utf-8'))
with open('a.txt',mode='rt',encoding='utf-8') as f: data=f.read() print(data)
三 r: 只读模式L(默认的)1 当文件不存时,会报错 2 当文件存在时,文件指针指向文件的开头
with open('a.txt',mode='rt',encoding='utf-8') as f: res1=f.read() print('111===>',res1) res2=f.read() print('222===>',res2)
print(f.read()) print(f.readable()) print(f.writable()) print(f.readline()) print(f.readline())
for line in f: print(line)
l=[] for line in f: l.append(line) print(l) print(f.readlines())
四 w: 只写模式 1 当文件不存时,新建一个空文档 2 当文件存在时,清空文件内容,文件指针跑到文件的开头 with open('c.txt',mode='wt',encoding='utf-8') as f: print(f.readable()) print(f.writable()) print(f.read())
f.write('哈哈哈\n') f.write('你愁啥\n') f.write('瞅你咋地\n')
f.write('1111\n2222\n333\n4444\n')
info=['egon:123\n','alex:456\n','lxx:lxx123\n'] for line in info: f.write(line) f.writelines(info)
with open('c.txt',mode='rb') as f: print(f.read())
with open('c.txt',mode='wb') as f: f.write('哈哈哈\n'.encode('utf-8')) f.write('你愁啥\n'.encode('utf-8')) f.write('瞅你咋地\n'.encode('utf-8'))
三 a: 只追加写模式1 当文件不存时,新建一个空文档,文件指针跑到文件的末尾 2 当文件存在时,文件指针跑到文件的末尾
with open('c.txt',mode='at',encoding='utf-8') as f: print(f.readable()) print(f.writable()) f.read()
f.write('虎老师:123\n')
在文件打开不关闭的情况下,连续的写入,下一次写入一定是基于上一次写入指针的位置而继续的 with open('d.txt',mode='wt',encoding='utf-8') as f: f.write('虎老师1:123\n') f.write('虎老师2:123\n') f.write('虎老师3:123\n')
with open('d.txt',mode='wt',encoding='utf-8') as f: f.write('虎老师4:123\n')
with open('d.txt',mode='at',encoding='utf-8') as f: f.write('虎老师1:123\n') f.write('虎老师2:123\n') f.write('虎老师3:123\n') with open('d.txt',mode='at',encoding='utf-8') as f: f.write('虎老师4:123\n')
posted @
2018-08-13 17:14
浩若烟海zjh
阅读(
360 )
评论()
编辑
收藏
举报