【发布时间】:2012-07-20 18:56:48
【问题描述】:
好的,所以我已经看到了其他问题,但我遇到了一个独特的问题。我必须以二进制模式打开文件才能读取它(我不太明白为什么,但它可以工作)。我可以轻松地打印出文件的行没问题。但是当我尝试使用re.search 查找特定行时,我遇到了问题,因为我有一个字符串模式和字节对象。这是我目前所拥有的:
input_file = open(input_file_path, 'rb', 0)
for line in input_file:
if re.search("enum " + enum_name, line, 0):
print("Found it")
print(line)
exit()
enum_name 是用户输入,所以我真的需要知道如何在搜索以二进制模式打开的文件时同时使用字符串和变量(或者如何以非二进制模式打开此文件,我明白了'不处于二进制模式时没有无缓冲文本 I/O 错误)。我已经尝试为搜索二进制文件制作我的模式,但是当我这样做时我不知道如何处理该变量。
【问题讨论】:
-
一个更好的问题可能是你为什么不能以文本模式打开文件
-
标记为
python-3.x,因为您提到了一个字节对象。 -
在windows中,是否读取二进制文件是不同的(如果不是,windows行尾被替换为\n)
标签: python python-3.x