为什么我不能迭代二进制多行读数?

时间:2014-06-03 01:43:17

标签: python binary iteration

我想用Python阅读Doom WAD。我从Doombuilder保存了一些随机的基本WAD,我正在尝试阅读它。

wad = open("test.wad","rb")

如果我打印readlines():

print wad.readlines()

输出:

['PWAD\x0b\x00\x00\x00U\x01\x00\x00`\xff`\xff\x0e\x01\x01\x00\x07\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xff\xff\x02\x00\x01\x00\x01\x00\x00\x00\x00\x00\x01\x00\xff\xff\x03\x00\x02\x00\x01\x00\x00\x00\x00\x00\x02\x00\xff\xff\x00\x00\x03\x00\x01\x00\x00\x00\x00\x00\x03\x00\xff\xff\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00\x00STARTAN2\x00\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00\x00STARTAN2\x00\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00\x00STARTAN2\x00\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00\x00STARTAN2\x00\x00\x00\xff\xc0\xff\x00\xff\x00\xff\xc0\xff\x00\xff\xc0\xff\xc0\xff\x01\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x00\x80\x01\x00\x00\x00\x00\x00\x03\x00\x02\x00\x00\xc0\x02\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x80\x00FLOOR0_1CEIL1_1\x00\xc0\x00\x00\x00\x00\x00\x01\xf8\xfe\xf8\xfe\x02\x00\x02\x00\x08\x00\x0c\x00\x10\x00\x14\x00\x00\x00\x00\x00\x01\x00\xff\xff\x00\x00\x01\x00\x02\x00\xff\xff\x00\x00\x00\x00\x03\x00\xff\xff\x00\x00\x02\x00\x03\x00\xff\xff\x0c\x00\x00\x00\x00\x00\x00\x00MAP01\x00\x00\x00\x0c\x00\x00\x00\n', '\x00\x00\x00THINGS\x00\x00\x16\x00\x00\x008\x00\x00\x00LINEDEFSN\x00\x00\x00x\x00\x00\x00SIDEDEFS\xc6\x00\x00\x00\x10\x00\x00\x00VERTEXES\xd6\x00\x00\x000\x00\x00\x00SEGS\x00\x00\x00\x00\x06\x01\x00\x00\x04\x00\x00\x00SSECTORS\n', '\x01\x00\x00\x00\x00\x00\x00NODES\x00\x00\x00\n', '\x01\x00\x00\x1a\x00\x00\x00SECTORS\x00$\x01\x00\x00\x01\x00\x00\x00REJECT\x00\x00%\x01\x00\x000\x00\x00\x00BLOCKMAP']

它返回一个包含字符串的列表。

现在,如果我重复它:

for i in wad.readlines():
    print i

输出:

PWAD

刚刚开始。为什么呢?

我在以前的分配中获得了相同的结果:

x = wad.readlines()
for i in x:
    print i

以下是下载文件的链接(Mediafire):

https://www.mediafire.com/?hvrcmwv1vcwvo29

1 个答案:

答案 0 :(得分:0)

with open('test.wad','r') as file:
    for line in file:
        print repr(line)


#output 'PWAD\x0b\x00\x00\x00U\x01\x00\x00`\xff`\xff\x0e\x01\x01\x00\x07\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xff\xff\x02\x00\x01\x00\x01\x00\x00\x00\x00\x00\x01\x00\xff\xff\x03\x00\x02\x00\x01\x00\x00\x00\x00\x00\x02\x00\xff\xff\x00\x00\x03\x00\x01\x00\x00\x00\x00\x00\x03\x00\xff\xff\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00\x00STARTAN2\x00\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00\x00STARTAN2\x00\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00\x00STARTAN2\x00\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00\x00STARTAN2\x00\x00\x00\xff\xc0\xff\x00\xff\x00\xff\xc0\xff\x00\xff\xc0\xff\xc0\xff\x01\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x00\x80\x01\x00\x00\x00\x00\x00\x03\x00\x02\x00\x00\xc0\x02\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x80\x00FLOOR0_1CEIL1_1\x00\xc0\x00\x00\x00\x00\x00\x01\xf8\xfe\xf8\xfe\x02\x00\x02\x00\x08\x00\x0c\x00\x10\x00\x14\x00\x00\x00\x00\x00\x01\x00\xff\xff\x00\x00\x01\x00\x02\x00\xff\xff\x00\x00\x00\x00\x03\x00\xff\xff\x00\x00\x02\x00\x03\x00\xff\xff\x0c\x00\x00\x00\x00\x00\x00\x00MAP01\x00\x00\x00\x0c\x00\x00\x00\n'
'\x00\x00\x00THINGS\x00\x00\x16\x00\x00\x008\x00\x00\x00LINEDEFSN\x00\x00\x00x\x00\x00\x00SIDEDEFS\xc6\x00\x00\x00\x10\x00\x00\x00VERTEXES\xd6\x00\x00\x000\x00\x00\x00SEGS\x00\x00\x00\x00\x06\x01\x00\x00\x04\x00\x00\x00SSECTORS\n'
'\x01\x00\x00\x00\x00\x00\x00NODES\x00\x00\x00\n'
'\x01\x00\x00'