python基础===文件对象的访问模式,以及计数循环的使用方法
2017-08-18 11:14
786 查看
案例一:
一个几M的文本文件,需要每隔100行写到新的文件中。
代码实现如下:
with open(r'f:\book.txt','rb') as f1: with open(r'f:\book2.txt','wb') as f2: i = 0 for line in f1: i+=1 if i % 33 ==0: f2.write(line)
这里补充一个知识点:
文件对象的访问模式
文件模式 | 操作 |
r | 以读方式打开 |
w | 以写的方式打开(必要时会清空) |
r+ | 以读写模式打开 |
w+ | 以读写模式打开(必要时会清空) |
a | 以追加模式打开,不会清空。(必要时创建新文件) |
a+ | 以读写模式打开,不会清空。(必要时创建新文件) |
ab | 以二进制追加模式打开,不会清空。(必要时创建新文件) |
ab+ | 以二进制读写模式打开。(必要时创建新文件) |
rb+ | 以二进制读写模式打开 |
rb | 以二进制读模式打开 |
wb | 以二进制读写模式打开(必要时会清空) |
在执行上面代码的时候,如果以r或者w的模式打开。会报错:
File "C:/Users/yangbo/Desktop/计数循环.py", line 4, in <module>
for line in f1:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xa6 in position 18: illegal multibyte sequence
所以,必须以二进制模式打开!
案例二:
请问一个日志文本文件有2000行,我要提取其中的100行到200行,怎么做?
with open(r'f:\book.txt','rb') as f1: with open(r'f:\book2.txt','wb') as f2: #以二进制追加模式打开!如果没有book2.txt文件,新建一个 i = 0 while True: line = f1.readline() i += 1 if i>100 and i<200: f2.write(line) if i>200: break if not line: break
相关文章推荐
- 使用py2exe 将python文件转成exe文件(以及 error: [Errno 2] No such file or directory: 'MSVCP90.dll'解决方法)
- python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
- laravel查询得到的数据(为对象object)无法进行数组循环遍历,而且不能用数组方式访问和查看的原因以及解决方法
- python使用cStringIO实现临时内存文件访问的方法
- JAVA基础学习之流的简述及演示案例、用缓冲区方法buffer读写文件、File类对象的使用、Serializable标记接口(6)
- python 文件的打开模式和文件对象方法
- Python读写文件模式和文件对象方法
- 设计模式之1.1 再谈反射 以及java当中通过配置文件得到类名字,并生成对象的方法
- Python中文件的打开模式和文件对象方法
- Python3基础 __str__ print一个类的实例对象的时候 使用的魔法方法
- open()文件对象的seek、tell方法详解 分类: python基础学习 open()文件读写 python Module 2013-09-05 09:40 450人阅读 评论(0) 收藏
- 用python处理文本,本地文件系统以及使用数据库的知识基础
- python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
- python基础-单例模式、__new__方法、利用new构造对象
- Python中文件对象的访问模式
- ScrollView的基础使用方法以及多图的循环滚动和缩放
- 使用ffmpeg循环推流(循环读取视频文件)方法以及局限
- python基础:os模块中关于文件/目录常用的函数使用方法
- python基础(文件输入/输出 内建类型 字典操作使用方法)
- window平台直接访问unix中文文件路径时的变通方法,使用php发送