我试图从包含这种格式的二进制数字列表的文件中读取数据: 0b1111; 0b1010; 0b0101 // 0b1110; 0b0010等等。然后,我想将由“//”分隔的每个部分追加到列表中。每个部分都应该变成一个列表,其中包含由“;”分隔的部分中的所有数字。我终于得到了代码工作,但在修改了完全不同且不相关的代码并扭转了这些变化之后,现在它破裂了。下面是我使用目前,为试图解决这个问题,我没有原始代码后的代码:从文件中读取二进制数
programLoad = open("programs.txt", "r")
programLoadList = programLoad.read()
programList = [p for p in programLoadList.split("//")]
programLoad.close()
for index in range(len(programList)):
programList[index] = [int(n, 2) for n in programList[index].split(";")]
我不会把这里的文件,因为它是非常大的。但是,所有数字都遵循正确的格式,并且在运行时出现错误“int base 2的无效文字”的列表理解失败。
如果您需要更多的信息来帮助,我会很乐意提供。
源代码管理是一件美妙的事情。 –
从错误信息(这似乎缺少n的实际值),看起来像你可能在一行中有两个分号,即没有介于中间的0bxxxx数字。 –
您的输入文件是否包含换行符?如果是这样的话,你将不得不拆分新行和*'//'* –