Как читать символы Ctrl из файла в Python - PullRequest
0 голосов
/ 28 июня 2018

Прямо сейчас я пытаюсь прочитать и проанализировать файл, используя Python 2. Создатель файла набрал в терминале группу строк с (Ctrl A) в каждой строке и скопировал эти строки в текстовый файл. , Таким образом, строки в файле выглядят как «(что-то) ^ A (что-то)». Когда я использую функцию readlines () в python для чтения файла, эти строки «^ A» не могут быть распознаны.

Я попытался использовать io.open и codecs.open и установить кодировку как UTF-8, но «^ A» явно не является строкой UTF-8. Кто-нибудь знает, как читать эти строки специальных команд управления из файла, используя Python? Большое спасибо!

Ответы [ 3 ]

0 голосов
/ 28 июня 2018

Просто прочитайте файл в двоичном режиме примерно так: 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
0 голосов
/ 09 мая 2019

По ссылке ниже я понял, что ^ L , является управляющим символом для подачи формы. http://jkorpela.fi/chars/c0.html

Тогда я нашел этот ответ по следующей ссылке: Как напечатать символ FF (подача формы)?

Я выполнил следующий код, и он отлично работал.

if '\f' in char:
0 голосов
/ 28 июня 2018

Эти управляющие символы являются частью набора символов ASCII , с числовыми кодами в диапазоне от 0 до 31 (или от 00 до 1F в шестнадцатеричном формате). Чтобы вырезать их из строки, просто используйте подстановку регулярных выражений:

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