继续python基础内容
文件操作
1.找到文件路径
2.编码,文件是以什么编码方式存储的
3.以什么方式去处理(只读?只写?追加?读写?写读?)
处理方式:
只读 r
只写 w
bytes写 wb
bytes读 rb
追加 a
bytes追加 ab
读写 r+
写读 w+,a+(f.seek(0):光标到开头)
# 文件操作 文件是由什么编码方式储存的,就要用什么编码方式打开 #以只读方式打开文件 f = open('d:jcc.txt',mode='r',encoding='gbk')#打开文件 count = f.read() print(count) f.close()#关闭文件
#以bytes方式读 f = open('d:jcc.txt',mode='rb')#打开非文字文件,比如图片说明的 count = f.read() print(count) f.close()#关闭文件
# w:以写的方式打开文件,文件存在就直接写,不存在就创建 f = open('d:jcc.txt',mode='w',encoding='gbk') f.write('蒋丞丞是个小仙女') f.close()#关闭文件
# wb:以bytes写的方式打开文件 f = open('d:jcc.txt',mode='wb') f.write('蒋丞丞是个小仙女!!!'.encode('utf-8')) f.close()#关闭文件
# a:以追加的方式打开文件 f = open('d:jcc.txt',mode='a',encoding='utf-8') f.write('蒋丞丞是个小仙女!!!') f.close()#关闭文件
# 先读后写 f = open('d:jcc.txt',mode='r+',encoding='utf-8') print(f.read())#光标到最后一个! f.write('蒋丞丞是个小仙女!!!')#添加到最后,此时光标在最后,再读没有内容 f.close()#关闭文件 # 先写后读 f = open('d:jcc.txt',mode='r+',encoding='utf-8') f.write('蒋丞丞真的是个小仙女!!!')#光标在开头从开头写 print(f.read())#从写完后光标所在位置往后读 f.close()#关闭文件
常用操作
f = open('d:jcc.txt',mode='r+',encoding='utf-8') print(f.read(3))#读三个字符 f.seek(3)#光标向后移动三个字节 f.tell()#显示光标的位置,字节 f.readable()#是否可读 f.readlines()#一行一行的读,返回一个列表,每一行当成列表中的一个元素 f.readline()#一行一行读 f.truncate()#从源文件中截取一段 print(f.read()) f.close() # 以with的方式打开文件,不用自己关闭,自动关闭,可以同时打开两个文件 with open('d:jcc.txt',mode='r+',encoding='utf-8') as f: pass
小练习
#小练习: ''' 用户注册,登录,三次机会 ''' name = input('name:') passwd = input('password:') with open('d:jcc.txt',mode='w+',encoding='utf-8') as f: f.write(name+','+passwd) print('*'*10+'login'+'*'*10) with open('d:jcc.txt',mode='r',encoding='utf-8') as f: list1 = f.read().split(',') fname = list1[0] fpasswd = list1[1] i = 0 while i<3: loginname = input('name:') loginpasswd = input('password:') if loginname==fname and loginpasswd==fpasswd: print('登录成功!!!') break elif i==2: print('你被pass了') else: print('try again!') i +=1