python自动脚本3-windows下实现二进制转字符串

二进制文件转字符串文件

方案一:直接在Linux系统下执行命令:

strings file.bin > strings_file.txt

方案二:在windows下实现strings的功能的脚本:
思路说明:
1.使用open(input_file, ‘rb’)打开一个二进制文件。
2.读取文件内容,并将其转换为字符串,本次使用decode()函数实现。
3.将字符串组成列表,写入特定文件中。
4.考虑特殊情况:用户提供的参数,二进制文件过大,如何规避乱码等。

由于本代码是按照单个字节进行转换的,即不可用来转换原文是汉字的二进制文件,有可能会被当做乱码丢弃掉。想获取更好的二进制转换的文件,请使用方案一。

注:附件的源码中,我留了一个小小的bug,而可运行程序中却没有。

提示:此小bug为,open函数的使用:函数write_lines_90000中的打开权限不应该为w+,应该为 ?
源码:


源码更新2.0版本,使其更接近linux下的转换结果。
源码2.0说明:
增加对字符串过滤的原则:
1.不在参考列表中的二进制视为丢弃,当连续丢弃达到3个或以上,添加换行。
2.在参考列表中的字符试为有效,当有效不是连续4个或以上,同样丢弃。
3.增加函数,遍历所以生成的输出文件,去掉文件中的单行有效字符低于4个的那一行。将生成的文件最后整合进用户想输出的那个文件中,即第二个参数。(去掉冗余文件,方便查看)
4.增加时间统计,提示所用时间(比Linux下明显的慢,文件越大越明显)。


源码2.0:



绿色声明:代码来源自网络和个人修改,源码不是一次完成的,也没有经过精益求精,只是表达一种解决问题的思路而已。实现基本功能,如果有好的优化方案或者是添加其它功能,欢迎留言。

风凉

时人不识凌云木,直待凌云始道高。

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐

暂无内容!

Warning: file_put_contents(): Only 0 of 86 bytes written, possibly out of free disk space in /www/wwwroot/www.iliuqi.com/wp-content/plugins/download-manager/libs/class.Session.php on line 80