[转]Python使用struct处理二进制(pack和unpack用法)

转载自:http://www.cnblogs.com/gala/archive/2011/09/22/2184801.html

这篇文章写的很好,所以无耻的转了。。

有的时候需要用python处理二进制数据,比如,存取文件,socket操作时.这时候,可以使用python的struct模块来完成.可以用 struct来处理c语言中的结构体.

struct模块中最重要的三个函数是pack(), unpack(), calcsize()
# 按照给定的格式(fmt),把数据封装[......]

继续阅读

Python写UTF8文件,UE、记事本打开依然乱码的问题

现象:使用codecs打开文件,写入UTF-8文本,正常无错误。用vim打开正常,但记事本、UE等打开乱码。

原因:一般写文本时,默认是没有BOM头的,即编辑器不知道这个文本文件是神马编码,只能智能detect,这个detect有的弱有的强,比如UE、记事本就挂了,认为是ASCII格式的,于是就乱码了。

解决方法:如果为了编辑器打开正常,可以加入BOM编码。但一定要慎重,一旦加入后,头部会增加2~3个字节,如果程序再读取,显然会出错。这个如果使用UE编辑过PHP代码抓过狂的都应该懂得[......]

继续阅读

Linux下用less浏览大文件

在Linux下,如果用vim打开一个大文件是非常困难的,即使配置了禁用临时文件也一样。

这是因为vim默认会全部加载文件!

而有时候,我们只想去查看文件的某一行(及浏览前后),怎么办?

以前我都是组合用head和tail,现在可以用less!

less初始不加载文件任何部分,是显示到哪一屏幕再加载那几行!
1、less打开文件
并指定直接定位到某个位置!
# 直接定位到第100行
less +100g xx.log

# 定位到最后一行
less +GG x[......]

继续阅读