真的在为一些基本的东西而挣扎。我正在查找没有倒数\r\n的实例(即。\r\n是good x\n是bad and would)。你知道吗
我很欣赏这一点,因为python 2对“rb”的管理方式不同,但无法在python 3中计算出等价的函数或标识方法。你知道吗
import re
import sys
import time
with open('4 - raw.txt', 'rb') as content_file:
content = content_file.read()
newLinePos = [m.start() for m in re.finditer('\n', content)]
for line in newLinePos:
if (content[line-1]) != '\r':
print (repr(content[line-20:line]))
print ("end")
time.sleep(1000)
如果要查找换行符/换行符(
\n
)字符的位置,而不是前面有回车符(\r
),可以使用负lookback断言正则表达式。你知道吗有几件事需要注意。你知道吗
content
是bytes
实例;当您以“rb”模式读取文件时,将得到字节。你知道吗pattern
需要是字节实例,因为正在搜索的序列是字节实例。你知道吗\n
)后面的字符前面没有\r
,则模式(?<!\r)\n
匹配。请参阅re documentation以获取完整的描述。你知道吗python3明确区分了原始字节字符串和utf-8字符串。
content[line-1]
返回一个数字,可能是0-255字节,您试图将其与字符串'\r'
匹配。我同意可能会进行转换,但是Python是强类型的,因此无论整数代表什么字符,转换都将失败。要获取对应于\r
的byte
数字,请使用:类似地,使用字节字符串生成迭代器:
相关问题 更多 >
编程相关推荐