Python如何处理不可打印的字符?

时间:2015-02-08 21:38:26

标签: python encryption character ascii

我正在制作一个使用密钥加密文件的程序。 它只能加密数字,字母,空格和一些符号。 等

This is text >>> h5D#I2%%&12s

我的程序也可以加密文件。 (至少我正在努力) 如果文件包含这样的字符怎么办? - uún‰3«°Ø以及NULL,CAN或SOH字符。

我有一个想法:我想留下这些和所有其他非ascii字符未加密。但我不知道Python是否可以使用它们。

P.S。这是项目的链接:(并且它未完成,没有工作) https://www.dropbox.com/sh/lq8j4vmci5c2vmh/AADeSTPVYeV13z5HRHp-NlWPa?dl=0

1 个答案:

答案 0 :(得分:3)

Python字节字符串(Python 2中的类型str,Python 3中的bytes)只是不透明的字节序列,其中每个字节的整数值介于0到255之间。

如何处理这些字节取决于您。你可以将它们视为文本;打印文本,拆分空格,更改大小写等。或者您可以将其视为二进制数据,您的选择。如果您选择将内容视为文本,则是,某些字节是“不可打印的”,因为ASCII编解码器尚未为这些代码点分配可打印的字形。但是,Python并不关心。

以二进制模式('rb''wb'等)打开文件,以确保行分隔符(\n\r\r\n字符)不会从平台本机格式翻译而来。