十四、python沉淀之路--文件操作
一、文件操作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沉淀之路--文件操作的更多相关文章
- 十三、python沉淀之路--文件操作
一.文件的读操作 例1 f = open('学习',encoding='utf-8') #首先要打开文件,不然直接读,是读不出来的 data = f.read() #read后的括号里不添加任何东西 ...
- Python学习之路——文件操作
文件操作分三步:打开文件,读写文件,关闭文件.读取操作时没有给read函数加括号,会出现下面这样的车祸 >>> data = open('/home/supersun/Documen ...
- Python修炼之路-文件操作
Python编程之文件操作 文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 每次文件打开.读取信息时,Python自动记录所达到的位置,好比一个书签,之后每一次 ...
- 十、python沉淀之路--高阶函数初识
一.高阶函数:分两种:一种是返回值中包含函数体:另一种是把一个函数体当作了参数传给了另一个函数 1.返回值中包含函数体 例1. def test(): print('这是一个测试') return t ...
- 二十四. Python基础(24)--封装
二十四. Python基础(24)--封装 ● 知识结构 ● 类属性和__slots__属性 class Student(object): grade = 3 # 也可以写在__slots ...
- python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法
python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...
- 十四. Python基础(14)--递归
十四. Python基础(14)--递归 1 ● 递归(recursion) 概念: recursive functions-functions that call themselves either ...
- python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码
python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...
- Python之路----文件操作
文件操作 1.能调用方法的一定是对象,比如数值.字符串.列表.元组.字典,甚至文件也是对象,Python中一切皆为对象. str1 = 'hello' str2 = 'world' str3 = ' ...
随机推荐
- MLP(多层神经网络)介绍
写在前面的 接触神经网络(ANN)的时间很长了,以前也只是学了学原理,做过一个BPN的练习,没有系统的总结过,最近看Torch的源码,对MLP有了更多的了解,写写自己学到的东西吧,算是做了一次总结! ...
- APPIUM API整理(python)---操作类
前言:android手机大家都很熟悉,操作有按键.触摸.点击.滑动等,各种操作方法可以通过api的方法来实现. 参考博文:http://blog.csdn.net/bear_w/article/det ...
- 【原创】无线破解Aircrack-ng套件详解(一)--airmon-ng与airodump-ng
一:Aircrack-ng详解 1.1 Aircrack-ng概述 Aircrack-ng是一款用于破解无线802.11WEP及WPA-PSK加密的工具,该工具在2005年11月之前名字是Aircra ...
- Spring AOP(5)-- 注解
applicationContext.xml <?xml version="1.0" encoding="UTF-8"?><beans xml ...
- Address already in use: make_sock: could not bind to address [::]:80
**********************************************************处理办法:# ps -aux | grep httpWarning: bad syn ...
- 2.scala控制结构、函数、异常处理
2.scala控制结构.函数.异常处理---小书匠,在线编辑器,MARKDOWN,Evernote,文件版本 a:focus { outline: thin dotted #333; outline: ...
- Java 注解指导手册 – 终极向导
原文链接 原文作者:Dani Buiza 译者:Toien Liu 校对:深海 编者的话:注解是java的一个主要特性且每个java开发者都应该知道如何使用它. 我们已经在Java Code Gee ...
- Linux find 命令大全
find 含义: 顾名思义,是从来查找满足条件的内容. 从指定目录,递归的查找满足条件的内容. 格式: find [查询目录] [参数] [匹配方式] 文件操作: -name : 查找文件名 ( f ...
- 案例学习:留言本制作V1、V2
需求V1: 请设计一个留言本功能的程序,包括普通用户发布和查看留言,管理员登录.查看和删除留言. 实验指导内容详见留言本制作(1) 需求V2: 1.请修改留言本程序的功能,添加普通用户添加登录功能,用 ...
- 后台操作日志,插入数据获取的该数据主键ID为null
代码如下: @Override public void saveTopicResource(TopicResourceModel model, Integer userId) { TopicResou ...