如何从 Python 中的文件中读取 Ctrl 命令字符
How to read Ctrl command characters from a file in Python
现在我正在尝试使用 Python 读取和解析文件 2. 文件的创建者在终端中键入了一堆行,每行中有 (Ctrl A)s,然后复制这些行到一个文本文件中。所以文件中的行看起来像“(something)^A(something)”。当我使用python中的readlines()函数读取文件时,无法识别那些“^A”字符串。
我尝试使用io.open和codecs.open并将编码设置为UTF-8,但“^A”显然不是UTF-8字符串。有谁知道如何使用 python 从文件中读取这些特殊的控制命令字符串?非常感谢!
这些控制字符是 ASCII character set 的一部分,数字代码范围从 0 到 31(或十六进制的 00 到 1F)。要从字符串中删除它们,只需使用正则表达式替换:
import re
clean_string = re.sub(r'[\x00-\x1f]+', '', string_with_control_characters)
像这样简单地以二进制模式读取文件: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
从下面的link我了解到^L是换页的控制字符。
http://jkorpela.fi/chars/c0.html
然后我从下面link找到了这个答案:
我执行了以下代码,它运行良好。
if '\f' in char:
现在我正在尝试使用 Python 读取和解析文件 2. 文件的创建者在终端中键入了一堆行,每行中有 (Ctrl A)s,然后复制这些行到一个文本文件中。所以文件中的行看起来像“(something)^A(something)”。当我使用python中的readlines()函数读取文件时,无法识别那些“^A”字符串。
我尝试使用io.open和codecs.open并将编码设置为UTF-8,但“^A”显然不是UTF-8字符串。有谁知道如何使用 python 从文件中读取这些特殊的控制命令字符串?非常感谢!
这些控制字符是 ASCII character set 的一部分,数字代码范围从 0 到 31(或十六进制的 00 到 1F)。要从字符串中删除它们,只需使用正则表达式替换:
import re
clean_string = re.sub(r'[\x00-\x1f]+', '', string_with_control_characters)
像这样简单地以二进制模式读取文件: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
从下面的link我了解到^L是换页的控制字符。 http://jkorpela.fi/chars/c0.html
然后我从下面link找到了这个答案:
我执行了以下代码,它运行良好。
if '\f' in char: