案例一:

一个几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


python基础===文件对象的访问模式,以及计数循环的使用方法的更多相关文章

  1. Python文件对象的访问模式

  2. python基础——获取对象信息

    python基础——获取对象信息 当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type( ...

  3. python 基础-文件读写'r' 和 'rb'区别

    原文链接: python基础-文件读写'r' 和 'rb'区别 一.Python文件读写的几种模式: r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢? 1.文件使用方式标识 'r ...

  4. python中文件操作的六种模式及对文件某一行进行修改的方法

    一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...

  5. python打开文件可以有多种模式

    一.python打开文件可以有多种模式,读模式.写模式.追加模式,同时读写的模式等等,这里主要介绍同时进行读写的模式r+ python通过open方法打开文件 file_handler = open( ...

  6. Python获得文件时间戳 异常访问监控 邮件定时提醒

    Python获得文件时间戳  异常访问监控 邮件定时提醒

  7. python每个文件都需要顶部注释,那今天介绍一个方法,只需要设置一次,下次新建python文件后,注释自动出现在顶部的方法

    python每个文件都需要顶部注释,那今天介绍一个方法,只需要设置一次,下次新建python文件后,注释自动出现在顶部的方法 只需要在file -----settings------file and ...

  8. 转:导出csv文件数字会自动变科学计数法的解决方法

    导出csv文件数字会自动变科学计数法的解决方法   其实这个问题跟用什么语言导出csv文件没有关系.Excel显示数字时,如果数字大于12位,它会自动转化为科学计数法:如果数字大于15位,它不仅用于科 ...

  9. python基础——文件访问模式

    文件访问模式 访问模式 说明 r 以只读方式打开文件.文件的指针将会放在文件的开头.这是默认模式. w 打开一个文件只用于写入.如果该文件已存在则将其覆盖.如果该文件不存在,创建新文件. a 打开一个 ...

随机推荐

  1. Python全栈 MongoDB 数据库(概念、安装、创建数据)

    什么是关系型数据库?           是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,             同时也是一个被组织成一组拥有正式描述性的表格( ...

  2. ActiveRecord-连接多张表之单表继承

    ActiveRecord-连接多张表之单表继承 1. 基本概念 Rails提供了两种机制,可以将复杂的面向对象模型映射为关系模型,即所谓的单表继承(single-table inheritance)和 ...

  3. Captcha 验证码Example

    maven依赖 防止和spring中的servlet冲突 <dependency> <groupId>com.github.penggle</groupId> &l ...

  4. Word2vec之CBOW

    一.Word2vec word2vec是Google与2013年开源推出的一个用于获取word vecter的工具包,利用神经网络为单词寻找一个连续向量看空间中的表示.word2vec是将单词转换为向 ...

  5. apollo命令行传入参数

    Java apollo客户端运行配置 需要在META-INF中创建app.properties文件,以配置app.id 还需要在/opt/settings/server.properties或C:/o ...

  6. web相关基础知识2

    2017-12-14 17:14:22 块元素 典型代表,Div,h1-h6,p,ul,li 特点: ★独占一行 ★可以设置宽高  ★ 嵌套(包含)下,子块元素宽度(没有定义情况下)和父块元素宽度默认 ...

  7. 基于oracle的sql(结构化查询语言)指令

    创建表空间 create tablespace 表空间名 datafile '存储路径(c:\a\a.dbf)' size 200m autoextend on next 10m maxsize un ...

  8. CSS的基本使用

    CSS的出现就是为了将HTML的内容与样式分离 CSS的书写方式 selector{ key:value } h1{ color: blue; } <!DOCTYPE html> < ...

  9. warning LNK4070的解决办法

           原文链接地址:http://blog.csdn.net/clever101/article/details/5898073#comments         重命名了一个MFC常规DLL ...

  10. ContestHunter#17-C 舞动的夜晚

    Description: L公司和H公司举办了一次联谊晚会.晚会上,L公司的N位员工和H公司的M位员工打算进行一场交际舞.在这些领导中,一些L公司的员工和H公司的员工之间是互相认识的,这样的认识关系一 ...