如何将数据文件转换成只有程序能识别的形式。
想用Python做个用于转换的应用程序,需要用到几个大的对应表文本文件,
如何将这几个文件转换后用户无法识别,而程序可以?
主要流程就是把输入的文件与对应表文本文件进行匹配,之后转换生成新的文件。
以前没有做过类似的程序,因为文件的行数总共有四百万左右,如何才能做到输入文件后迅速生成结果文件?
Python数据?大文件?转换?识别 Python?大文件?转换?数据?识别
[解决办法]
问题是你的对应表结构如何,转换的程序又如何?
如果只是translate就简单了
[解决办法]
其实百万条也不多,你看看字节数,如果都是词估计也就几十M而已
让人看不到方法很多,不过如果你的程序开源给客户,估计也没必要
1.如果打算一次载入,直接写个赋值语句,编译为pyc
2.做一个简单的加密解密,加密写入文件,程序读的时候解密
3.utf-8是多字节的,只要在一个字符几个字节中间拆开,后面就基本乱套了,基于这种思路,把换行符替换为unicode的自定义保留字符,然后把第一个字节移到最后,确保这个字节是字符的一部分而不是全部,就是说第一个字符的unicode码要>127
其实依照3的思路,你增减一些字节(必须做到可逆),基本新文件都无法识别
不过要注意一些ASCII(<128的字符),因为这些字符utf-8只有单字节,它后面的字符将又变成可以人工阅读
你可以把ASCII映射到自定义保留字符,读取时反向映射就简单多了
从字节做文章就随意多了,移位、增减字节、位运算……又不是什么银行账目,基本做成天书就行了
普及一下:自定义保留字符
unicode有部分码段并没有定义任何字符集,而是留给使用者自己定义的,这些码段字符目前我见过编程者使用最多是用于作为某些控制符或分隔符,因为不属于任何字符集,所以一般情况下极容易识别而不需要担心变为“乱码”又并不影响显示或传送,较常用是E000-F8FF段