我試圖從包含這種格式的二進制數字列表的文件中讀取數據: 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數字。 –
您的輸入文件是否包含換行符?如果是這樣的話,你將不得不拆分新行和*'//'* –