day8 文件操作
2018-09-18 06:42:58来源:博客园 阅读 ()
一、文件操作
- r
1 f=open('log',mode='r',encoding='utf-8') 2 a=f.read() 3 print(a) 4 f.close()
- rb
1 f=open('log',mode='rb') #已bytes类型输入,不需要encoding='utf-8' 2 a=f.read() 3 print(a) 4 f.close()
- w:对于写操作,当无此文件时,会先创建此文件。
1 f=open('log',mode='w',encoding='utf-8') #w操作会将文件中原来的内容覆盖掉 2 a=f.write("你好") 3 f.close()
- wb
1 1 f=open('log',mode='wb') 2 2 a=f.write("菜菜") #TypeError: a bytes-like object is required, not 'str' 3 3 f.close() 4 5 #修改后 6 f=open('log',mode='wb') 7 a=f.write("菜菜".encode('utf-8')) #需要进行转码,因为是用bytes类型传入 8 f.close()
- a
1 f=open('log',mode='a',encoding='utf-8') 2 f.write(',你今天真好看啊') #追加的内容不会覆盖文件内之前得内容 3 f.close()
- ab
1 f=open('log',mode='ab') 2 f.write('\n你可真讨厌啊'.encode('utf-8')) 3 f.close()
- r+
1 f=open('log',mode='r+',encoding='utf-8') 2 print(f.read()) 3 f.write('\n皮皮你真可爱啊') 4 print(f.read()) #读写模式下这一步不会被系统执行 5 f.close()
- w+
1 f=open('log','w+',encoding='utf-8') 2 f.write("妞妞你真讨厌啊") 3 print(f.read()) #写读模式下,这句也不会执行,因为光标现在在最后 4 f.close()
二、文件常用操作
1 f=open('log','r+',encoding='utf-8') 2 3 #read() :方法用于从文件读取指定的字节数,如果未给定或为负则读取所有。如果文件过大会造成内存溢出。 4 a=f.read(3) #read按照字符来进行读写 5 print(a) 6 7 #seek() 方法用于移动文件读取指针到指定位置。 8 f.seek(3) #seek是按照字节来寻找的,在utf-8中一个中文字符占3个字节,一个英文字母占一个字节 9 a=f.read() 10 print(a) 11 12 #tell() 方法返回文件的当前位置,即文件指针当前位置。 13 a=f.tell() 14 print(a) 15 16 #readable()方法判断文件是否可读 17 a=f.readable() 18 print(a) 19 20 #readline() 方法用于从文件读取整行,包括 "\n" 字符。如果指定了一个非负数的参数,则返回指定大小的字节数,包括 "\n" 字符。 21 a=f.readline() #一行行的读,如果不加参数只会读取第一行 22 print(a) 23 24 #readlines() 方法用于读取所有行(直到结束符 EOF)并返回列表,该列表可以由 Python 的 for... in ... 结构进行处理。 25 a=f.readlines() #读出来为列表 26 print(a) 27 28 #truncate() 方法用于截断文件,如果指定了可选参数 size,则表示截断文件为 size 个字符。 如果没有指定 size,则从当前位置起截断;截断之后 size 后面的所有字符被删除。 29 f.truncate(6) #在utf-8中一个中文字符占3个字节,如果后面参数不为3的悲伤,截取出来的中文就会处出现问题。 30 31 f.close()
三、with:为了避免打开文件后忘记关闭,可以通过管理上下文
如果open函数如果不指定编码方式,默认使用操作系统编码方式,windows的为gbk
1 with open('log','r') as f: 2 f.readlines()
四、文件修改
1 with open('小护士班主任',encoding='utf-8') as f,open('小护士班主任.bak','w',encoding='utf-8') as f2: 2 for line in f: 3 if '星儿' in line: #班主任:星儿 4 line = line.replace('星儿','啊娇') 5 #写文件 6 f2.write(line) #小护士:金老板 7 8 import os 9 os.remove('小护士班主任') #删除文件 10 os.rename('小护士班主任.bak','小护士班主任') #重命名文件
五、作业
要求:先进行注册,在登录。
1 username = input('请输入你要注册的用户名:') 2 password = input('请输入你要注册的密码:') 3 with open('list_of_info',mode='w',encoding='utf-8') as f: 4 f.write('{}\n{}'.format(username,password)) 5 print('恭喜您,注册成功') 6 lis = [] 7 i = 0 8 while i < 3: 9 usn = input('请输入你的用户名:') 10 pwd = input('请输入你的密码:') 11 with open('list_of_info',mode='r+',encoding='utf-8') as f1: 12 for line in f1: 13 lis.append(line) 14 15 if usn == lis[0].strip() and pwd == lis[1].strip(): 16 print('登录成功') 17 break 18 else:print('账号和密码错误') 19 i+=1
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- PythonDay08 2019-08-13
- python 之 前端开发(form标签、单选框、多选框、file上传文 2019-08-13
- 把Python项目打包成exe文件 2019-08-13
- pycharm 新建py文件写时有作者和时间 2019-08-13
- 列表和元组 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash