文件基本操作
三步骤
1.打开文件
2.操作文件
3.关闭文件
关键字:open
1 f=open(r'a.txt','r',encoding='utf8') 2 print(f) # 操作系统打开文件 3 4 # 操作文件:读、写 5 res=f.read() 6 7 # 关闭文件:释放资源 8 f.close 9 10 11 #方式二: 12 #with上下管理器 13 with open(r‘a.txt’,‘r’,encoding=‘utf8’) as f: 14 print(f.read())
文件读写模式
r:read(读)
w:write(写)
a:append(追加写)
#r模式 #1.路径不存在,直接报错 with open(r‘a.txt’,‘r’,encoding=‘utf8’)as f: print(f.read()) #2.路径存在,打印结果 with open(r‘a.txt’,‘r’,encodi=‘utf8’)as f: print(f.read())
#w模式 #1.路径不存在的,会自定创建出来文件 with open(r‘a.txt’,‘w’,enco=‘utf8’)as f: print(f.write()) #2.路径存在 #把文件的原本数据清除,从新写入 with open(r,‘a.txt’,‘w’,encoding=‘utf8’)as f: f.write(‘hello’) #写文件的数据类型必须是字符串类型,和字节类型,其他类型都不能直接写入
#a模式 #1.路径不存在,会自动创建出新文件 with open(r‘a.txt’,‘a’,encoding=‘utf8’)as f: f.read(‘hello’) #2.路径存在,在原来文件末尾新加内容 with ope(r‘a.txt’,‘a’,encoding=‘utf8’)as f: f.read.(‘hello\n’)
文件操作方法
1.读系列
#读系列 with open(r‘b.txt’,‘r’,encoding=‘utf8’)as f: print(f.read()) #一次读qu文件的一行内容,一行一行读取 print(f.readline()) #读取文件的内容用列表形式表现出来,一行代表一个元素 print(f.readlines()) #判断文件是否可读 print(f.readable())
2.xie系列
#2.写系列 with open(r‘a.txt’,‘w’,encoding=‘utf8’)as f: f.write(‘hello baby’) f.write(str(123))#只能写字符串 #判断是否可读 fprint(f.writable()) f.writelines(['hello\n','world\n','kevin','jack'])
文件的读操作优化
with open(r'a.txt','r',encoding='utf8') as f: '''read方法是一次性读取文件的全部内容,所以,当文件内容非常打的时候,有可能造成内存溢出 我们不允许这样的情况发生,当当文件内容非常小的时候,无所谓 针对上述问题如何解决?''' 利用for循环来解决 for line in f: print(line)#for循环就是一行一行的读取内容
课堂练习
简易版的注册与登录功能
注册功能 # # 1.把用户名保存到文件夹中 # # 1.1 让用户输入用户名和密码 # username = input('请输入你的用户名>>>:').strip() # password = input('请输入你的密码>>>:').strip() # # 1.2把用户输入的密码存到文件中 # res = '%s|%s' % (username, password) # with open(r'a.txt', 'a', encoding='utf8') as f: # f.write(res\n) # print('{}注册成功'.format('username')) 登录功能 # # 1.把用户名保存到文件夹中 # # 1.1 让用户输入用户名和密码 # username = input('请输入你的用户名>>>:').strip() # password = input('请输入你的密码>>>:').strip() # # 1.2把用户输入的密码存到文件中 # res = '%s|%s' % (username, password) # with open(r'a.txt', 'a', encoding='utf8') as f: # f.write(res\n) # print('{}注册成功'.format('username'))
多用户注册和多用户下的登录功能
多用户注册 while True: username = input('请输入你的用户名>>>:').strip() password = input('请输入你的密码>>>:').strip() # 判断用户名是否存在 with open(r'a.txt', 'r', encoding='utf8') as f2: for i in f2: i1 = i.split('|') if username == i1[0]: print('用户已经注册') break else: # 1.2把用户输入的密码存到文件中 res = '%s|%s\n' % (username, password) with open(r'a.txt', 'a', encoding='utf8') as f: f.write(res) print('{}注册成功'.format('username')) 多用户登录 user_name = input('请输入你的用户名>>>:').strip() user_password = input('请输入你的密码>>>:').strip() # 2.2读出文件内容 with open(r'a.txt', 'r', encoding='utf8') as f1: for line in f1: line.split('|') if user_name == line.split('|')[0] and user_password == line.split('|')[1].strip('\n'): print('登陆成功') break else: print('登录失败')
整合代码
while True: print(""" 1.选择用户注册 2.选择用户登录 3.退出 """) new_name = input('请输入你选择的编号:>>>') if new_name == '1': print('进入用户注册程序') while True: username = input('请输入你的用户名>>>:').strip() password = input('请输入你的密码>>>:').strip() # 判断用户名是否存在 with open(r'a.txt', 'r', encoding='utf8') as f2: for i in f2: i1 = i.split('|') if username == i1[0]: print('用户已经注册') break else: # 1.2把用户输入的密码存到文件中 res = '%s|%s\n' % (username, password) with open(r'a.txt', 'a', encoding='utf8') as f: f.write(res) print('{}注册成功'.format('username')) break # 2.1取出文件的内容 elif new_name == '2': print('进入用户登录程序') user_name = input('请输入你的用户名>>>:').strip() user_password = input('请输入你的密码>>>:').strip() # 2.2读出文件内容 with open(r'a.txt', 'r', encoding='utf8') as f1: for line in f1: line.split('|') if user_name == line.split('|')[0] and user_password == line.split('|')[1].strip('\n'): print('登陆成功') break else: print('登录失败') elif new_name == '3': break else: print('输入有误,请按提示输入')
文件操作模式
t模式:text文本
r》》》rt
w》》》wt
a》》》at
1.以字符串为基本单位
2.它只能操作字符串形式
3.encoding参数必须写
b模式:bytes二进制模式
r》》》rb
w》》》wb
a》》》ab
1.b不能省略,必须写rb
2.他可以操作任意的数据类型:视频、音频‘图片
3.encoding参数必须不写
4.它的数据以字节为单位’
标签:10,encoding,python,utf8,基础,文件,print,txt,open From: https://www.cnblogs.com/shanghaipudong/p/17429030.html