如何在Python中从文件读取Ctrl命令字符

时间:2018-06-27 21:18:02

标签: python command-line terminal ctrl

现在,我正尝试使用Python 2读取和解析文件。文件的创建者在终端中键入了一堆行,每行中都包含(Ctrl A),并将这些行复制到了文本文件中。因此,文件中的行看起来像“(某物)^ A(某物)”。当我在python中使用readlines()函数读取文件时,无法识别那些“ ^ A”字符串。

我尝试使用io.open和codecs.open并将编码设置为UTF-8,但是“ ^ A”显然不是UTF-8字符串。有谁知道如何使用python从文件中读取这些特殊的控制命令字符串?非常感谢你!

3 个答案:

答案 0 :(得分:0)

这些控制字符是ASCII character set的一部分,其数字代码范围为0到31(十六进制为00到1F)。要从字符串中删除它们,只需使用正则表达式替换:

import re
clean_string = re.sub(r'[\x00-\x1f]+', '', string_with_control_characters)

答案 1 :(得分:0)

只需以二进制模式读取文件,如下所示:open('file.txt', 'rb')。 Ctrl-A将是值1。

with open('test.txt', 'rb') as f:
    text = f.read()
    for char in text:
        if char == b'\x01': # \x01 stands for the byte with hex value 01
            # Do something
            pass
        else:
            # Do something else
            pass

答案 2 :(得分:0)

从下面的链接中,我意识到 ^ L 是换页的控制字符。 http://jkorpela.fi/chars/c0.html

然后我从以下链接中找到了这个答案: How to print FF (form feed) character?

我执行了以下代码,效果很好。

if '\f' in char: