一、文件操作b模式

1、

 # f = open('test11.py','rb',encoding='utf-8')  # 这种情况会报错
f = open('test11.py','rb') # b 模式不能指定编码方式
data = f.read()
print('直接打印出来:',data)
print('解码打印\n',data.decode('utf-8'))
f.close()
 直接打印出来: b'11111\r\n22222\r\n3333\r\n'
解码打印
11111
22222
3333

总结:字符串 -------encoding ------->> bytes
           bytes --------decode --------->> 字符串

例2

 f = open('test22.py','wb')
f.write(bytes('99999\n',encoding='utf-8'))
f.write('北京'.encode('utf-8'))
f.close() f1 = open('test22.py','br')
data = f1.read()
print('原码打印',data)
print('解码打印\n',data.decode('utf-8'))
f1.close()
 原码打印 b'99999\n\xe5\x8c\x97\xe4\xba\xac'
解码打印
99999
北京

注:原码打印和解码打印的区别,写文件前,即在打开的时候不能指定编码格式。只有在写的时候才指定编码格式。

二、文件操作

1、

 f = open('练习.txt',"r+",encoding='utf-8')
print(f.read())
f.write('1234556789\n')
print(f.read())
f.close()
 1234556789

2、closed,encoding, flush(),readlinse() 的使用

 f = open('练习.txt',"r+",encoding='utf-8',newline='')
print(f.closed) # closed 判断文件是否关闭
print(f.encoding) # 检查是哪种编码格式
f.flush() # 写完内容后是暂时存在了缓存里面,通过flush()函数冲刷一下,就将内容保存在了内存、# f.flush() #讲文件内容从内存刷到硬盘
print(f.readlines()) #将所有内容以列表形式打印出来,
 False
utf-8
['\r\n', '1234556789\r\n', '1234556789\r\n']

3、tell的使用,打印当前所在位置

 f = open('练习.txt',"r+",encoding='utf-8',newline='')
print(f.tell())
print(f.readline()) # 因为12345 后还有\r\n,没有显示出来
print(f.tell())

4、seek的使用,(是以字节为单位的)

 f = open('练习.txt',"r+",encoding='utf-8',newline='')
f.write('my name is cainiao who is from earth')
f.close() f1 = open('练习.txt','r+',encoding='utf-8')
print(f1.read()) f1.seek(3,0) #“0”代表从文件开头开始偏移,偏移3个单位
print(f1.tell())
print(f1.read(3))
print(f1.read(6)) #从偏移之后的指针所指的位置,开始读取6个字符
print(f1.tell()) print(f1.readline())
# print('看看是否到了最后:',f1.read(5)) print(f1.seek(5,0))
print(f1.seek(3,1))
print(f1.seek(0,2)) #“2”代表从末尾算起,“0”代表偏移0个单位
 nam
print(f1.seek(3,1))
e is c
io.UnsupportedOperation: can't do nonzero cur-relative seeks
12
ainiao who is from earth
5

5、读取大文件中最后一行

 f=open('练习.txt','rb')
for i in f:
offs=-10
while True:
f.seek(offs,2)
data=f.readlines()
if len(data) > 1:
print('文件的最后一行是%s' %(data[-1].decode('utf-8')))
break
offs*=2

十四、python沉淀之路--文件操作的更多相关文章

  1. 十三、python沉淀之路--文件操作

    一.文件的读操作 例1 f = open('学习',encoding='utf-8') #首先要打开文件,不然直接读,是读不出来的 data = f.read() #read后的括号里不添加任何东西 ...

  2. Python学习之路——文件操作

    文件操作分三步:打开文件,读写文件,关闭文件.读取操作时没有给read函数加括号,会出现下面这样的车祸 >>> data = open('/home/supersun/Documen ...

  3. Python修炼之路-文件操作

    Python编程之文件操作 文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 每次文件打开.读取信息时,Python自动记录所达到的位置,好比一个书签,之后每一次 ...

  4. 十、python沉淀之路--高阶函数初识

    一.高阶函数:分两种:一种是返回值中包含函数体:另一种是把一个函数体当作了参数传给了另一个函数 1.返回值中包含函数体 例1. def test(): print('这是一个测试') return t ...

  5. 二十四. Python基础(24)--封装

    二十四. Python基础(24)--封装 ● 知识结构   ● 类属性和__slots__属性 class Student(object):     grade = 3 # 也可以写在__slots ...

  6. python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法

    python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...

  7. 十四. Python基础(14)--递归

    十四. Python基础(14)--递归 1 ● 递归(recursion) 概念: recursive functions-functions that call themselves either ...

  8. python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码

    python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...

  9. Python之路----文件操作

    文件操作 1.能调用方法的一定是对象,比如数值.字符串.列表.元组.字典,甚至文件也是对象,Python中一切皆为对象. str1 = 'hello' str2 = 'world' str3 = ' ...

随机推荐

  1. linux 配置tensorflow 全过程记录

    前几天刚下一个deepin系统,是基于linux 内核的,界面的设计有些mac的feel 感觉还是挺不错的,之后就赶紧配置了一下tensorflow ,尽管之前配置过,但是这次还是遇到点儿问题,所以说 ...

  2. 初入Spring-boot(三)

    Spring boot 的运行原理 Spring boot关于自动配置的源码在spring-boot-autoconfigure-xxxx.jar内. 一.可以通过下面三种方式查看当前项目中已启用和未 ...

  3. Linux系统官网下载

    CentOS-6.9-x86_64-bin-DVD1.isohttp://archive.kernel.org/centos-vault/6.9/isos/x86_64/CentOS-6.9-x86_ ...

  4. mysql简单的增删改查

    增加 MYSQL>insert into class (stu,name,age) values (1,'zhangsan',23);(回车) 另外,如果输入的是中文的话,在windows下可能 ...

  5. VirtualizingPanel.IsVirtualizing 附加属性

    VirtualizingPanel.IsVirtualizing 附加属性 获取或设置一个值,该值指示此 VirtualizingPanel 正在虚拟化其子集合. 说明: 标准布局系统可以创建项容器并 ...

  6. WPF布局控件常用属性介绍

    WPF布局控件常用属性介绍 其它 | 作者:慧都控件网 | 2011-04-06 13:41:57| 阅读 0次 有用(0) 评论(0)   概述:WPF布局控件都是派生自System.Windows ...

  7. Selenium with Python 007 - Cookie处理

    Webdriver 读取.添加.删除cookie信息基本用法 获得Cookie信息:driver.get_cookies() 添加Cookie信息:driver.add_cookie(cookie_d ...

  8. MSSQL旋转和反旋转的例子

    1.旋转 ;WITH CTE AS ( AS VAL UNION ALL UNION ALL UNION ALL UNION ALL UNION ALL UNION ALL UNION ALL ) S ...

  9. scrapy结构及各部件介绍

    1.总览,数据流图: 2.Engine:引擎负责控制系统所有组件之间的数据流,并在发生某些操作时触发事件. 3.Scheduler:调度程序接收来自引擎的请求,并将它们排入队列,并在之后,当Engin ...

  10. SpringBoot_09_使用jar包中配置的Bean(starter配置)

    一.前言 二.配置方式 在 META-INF/spring.factories 中声明主配置类,并开启bean的扫描 三.参考资料 1.Understanding auto-configured be ...