18.函数复习,文件处理b模式(二进制处理),文件处理其他高级玩法
1.函数复习
# map
# l = [1,2,3,4,5]
# print(list(map(str,l))) # reduce
# l = [1,2,3,4,5]
# from functools import reduce
# print(reduce(lambda x,y:x+y,l,3)) #初始值是3. # filter
# name=['ray_sb','ray']
# res=filter(lambda x:x.endswith('sb'),name)
# # res=filter(lambda x:not x.endswith('sb'),name) #不包含
# print(res)
# print(list(res))
2.文件处理b模式(二进制处理)
1.文件默认处理是文本方式,但是视频,图片之类的只能用二进制处理
2.文件最终处理方式是二进制,所以二进制可以跨平台
3.b模式对linux没什么用,因为linux就是二进制处理,对windows有用
# f=open('test11.py','rb',encoding='utf-8') #b的方式不能指定编码
# f=open('test11.py','rb') #b的方式不能指定编码
# data=f.read()
# 编码:'字符串'---------encode---------》bytes
# 解码:bytes---------decode---------》'字符串'
# print(data)
# print(data.decode('utf-8'))
# f.close()
# f=open('test22.py','wb') #b的方式不能指定编码
# f.write(bytes('1111\n',encoding='utf-8'))
# f.write('星空月零'.encode('utf-8'))
# f=open('test22.py','ab') #b的方式不能指定编码
# f.write('星空月零'.encode('utf-8'))
# open('a;ltxt','wt')
# 1.文件默认处理是文本方式,但是视频,图片之类的只能用二进制处理
# 2.文件最终处理方式是二进制,所以二进制可以跨平台
# 3.b模式对linux没什么用,因为linux就是二进制处理,对windows有用
3.文件操作其他方法
# f.flush() #讲文件内容从内存刷到硬盘
#
# f.closed #文件如果关闭则返回True
#
# f.encoding #查看使用open打开文件的编码
# f.tell() #查看文件处理当前的光标位置
#
# f.seek(3) #从开头开始算,将光标移动到第三个字节
# f.truncate(10) #从开头开始算,将文件只保留从0-10个字节的内容,文件必须以写方式打开,但是w和w+除外
用seek方法的相对模式时必须以b的方式打开
# f=open('seek.txt','r',encoding='utf-8')
# print(f.tell())
# f.seek(10)
# print(f.tell())
# f.seek(3)
# print(f.tell())
# f=open('seek.txt','rb')
# print(f.tell())
# f.seek(10,1)
# print(f.tell())
# f.seek(3,1)
# print(f.tell())
# f=open('seek.txt','rb')
# print(f.tell())
# f.seek(-5,2)
# print(f.read())
# print(f.tell())
# f.seek(3,1)
# print(f.tell())
文件读取
因为readlines()是把文件从头读到尾,耗费资源,所以用循环的方式好。
# f=open('日志文件','rb')
# data=f.readlines()
# print(data[-1].decode('utf-8'))
f=open('日志文件','rb')
# for i in f.readlines():
# print(i)
#循环文件的推荐方式
# for i in f:
# print(i)
文件读取demo:读取日志文件的最后一行
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
18.函数复习,文件处理b模式(二进制处理),文件处理其他高级玩法的更多相关文章
- zabbix高级玩法之通过xml文件一次性导入
author:headsen chen date: 2018-11-10 10:08:38 背景:zabbix的硬件监控架构已经部署完成,接下来就是创建主机这一步,2400台主机如果采用一台台的创 ...
- mysql删除二进制日志文件
一.RESET MASTER 这个语句可以验证首次配置主机备机是否成功.步骤如下: 1. 启动master和 slave,开启replication (即 复制) 注:replication (复制) ...
- python—— 文件的打开模式和文件对象方法 & os、os.path 模块中关于文件、目录常用的函数使用方法
引用自“鱼c工作室” 文件的打开模式和文件对象方法 : https://fishc.com.cn/forum.php?mod=viewthread&tid=45279&ext ...
- day08文件操作的三步骤,基础的读,基础的写,with...open语法,文件的操作模式,文件的操作编码问题,文件的复制,游标操作
复习 ''' 类型转换 1.数字类型:int() | bool() | float() 2.str与int:int('10') | int('-10') | int('0') | float('-.5 ...
- Linux下c函数dlopen实现加载动态库so文件代码举例
dlopen()是一个强大的库函数.该函数将打开一个新库,并把它装入内存.该函数主要用来加载库中的符号,这些符号在编译的时候是不知道的.这种机制使得在系统中添加或者删除一个模块时,都不需要重新编译了. ...
- python文件处理b模式
执行环境:windows+Python3.51.rb模式,从文件中读取内容,得到的是bytes类型 因为我们使用的是b模式,所以在open函数中不能指定编码格式,所以打印出来的格式的二进制的格式,而我 ...
- 巧用AWK处理二进制数据文件
AWK是Unix下的一款功能强大的文本格式化和抽取工具.利用这个工具,可以对复杂的文本文件进行整理,提取其中的全部或者部分数据,按照需要的格式予以显示.需要说明的是,AWK的强大功能只针对纯文本文件. ...
- ELF二进制目标文件详解
以下内容为<<linux内核编程>>笔记 链接程序 找出所有引用的外部模块并链接起来,这些外部模块或函数库一般来自于开发者,操作系统和C运行库. 链接程序取出这些函数库,修订指 ...
- JavaScript 二进制转文件
关于在javascript下,如何将二进制转换成相应的文件并下载. 首先, 我们需要得到二进制的数据以及相应的文件格式,没有相应的格式也可以,可以通过二进制来判断,但相对会麻烦很多,所以建议可以要求后 ...
随机推荐
- jq 添加内容
向页面动态添加内容,一般用于动态网页,需要即时请求数据,并更新在页面上,使用append()更多一些,empty() - 清空所有子元素,remove() - 清除自身所有子元素. append() ...
- 《C程序设计语言》笔记(二)
四:函数与程序结构 1:函数之间的通信可以通过参数.函数返回值以及外部变量进行. 2:如果函数定义中省略了返回值类型,则默认为int类型.如果没有函数原型,则函数将在第一次出现的表达式中被隐式声明,比 ...
- 让开发部署提速 8 倍,我参与贡献这款 IDE 插件的全过程
如何像参与开源那样,去参与一款 IDE 插件的设计? 作为一款 IDE 插件的使用者,我是否能决定下一个版本的功能? 自从产品经理银时小伙和他的开发小哥们在去年12月发布 Cloud Toolkit( ...
- python 约束. 异常处理. MD5. 日志处理
一.约束 1.抛异常 # # 项目经理写的 class Base: # # 对子类进行了约束. 必须重写该方法 # # 以后上班了. 拿到公司代码之后. 发现了NotImplementedError ...
- Java练习 SDUT-1239_水仙花数
水仙花数 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花 ...
- qt 中画线时如何设置笔的颜色和填充
在上一次介绍中已经实现了自定义控件,并把Widget 放入了主界面中,画了一个圆,具体可参考“QT 自定义窗口” 下面我们介绍一下如何设置画笔颜色和所画图形的填充颜色. 画笔颜色: void Circ ...
- 看看国外的JavaScript题目
---恢复内容开始--- 题目一 (function(){ return typeof arguments;})(); 答案:“object” arguments是对象,伪数组有两件事要注意这里 ...
- Microsoft.SQL.Server2012.Performance.Tuning.Cookbook学习笔记(二)
Creating trace with system stored procedures Following are the stored procedures which you should kn ...
- oracle函数 VSIZE(X)
[功能]返回X的大小(字节)数 [参数]x select vsize(user),user from dual; 返回:6 asdied select length('adfad合理') " ...
- 洛谷P2709 小B的询问 莫队
小B有一个序列,包含N个1~K之间的整数.他一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数字i在[L..R]中的重复次数.小 ...