我正在編寫一個工具來解析文件中的ID3標籤並以GUI方式編輯它們。到目前爲止,一切都很好。但是,我試圖在顯示信息時刪除空字節終止符,然後在用戶將其保存爲保留ID3v1格式時將其添加回去。然而,當檢查空終止符時,我什麼也得不到。ID3v1在Python中的空字節解析
這是關係到標籤的handlig的部分代碼:
if(bytes.decode(check) == "TAG"):
title = self.__clean(bytes.decode(f.read(30)))
artist = self.__clean(bytes.decode(f.read(30)))
album = self.__clean(bytes.decode(f.read(30)))
year = bytes.decode(f.read(4))
comment = self.__clean(bytes.decode(f.read(30)))
tmp_gen = bytes.decode(f.read(1))
genre = self.__clean(Utils.genreByteToString(tmp_gen))
return TagV1(title, artist, album, year, comment, genre)
return None
的清潔方法是在這裏:
def __clean(self, string):
counter = 0
for i in range(0, len(string)):
w = string[i]
if(not w.strip()) or b"\00" == w or w == b"00" or w == bytes.decode(b"\00"):
counter+=1
else:
counter = 0
if(counter == 2):
return string[0:i-1]
return string
我試過空字節的每一個可能的組合訣竅。要麼not w
或not w.split()
我甚至試圖把它放在字節,然後循環充滿空字節,但仍然沒有。我的計數器在調試器上始終保持爲0。另外,當試圖從調試器複製值時,它顯示爲,這是一個空白區域。在調試器中,它顯示爲一個空的方塊。我將不勝感激。
使用PyChar 2017年1.4
['rstrip'](https://docs.python.org/2/library/string.html#string.rstrip)? –
Nevermind rstrip()沒有工作。我解決了它 – MartinStone
抱歉:您當然需要使用'rstrip('\ 0')',否則它將無法工作。 –