我正在编写一个工具来解析文件中的 ID3 标签并以 GUI 方式编辑它们。到目前为止,一切都很好。但是,我试图在显示信息时删除空字节终止符,然后在用户将其保存为 ID3v1 格式时将其添加回来。但是,在检查空终止符时,我什么也得不到。
这是与标签的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。此外,当尝试从调试器复制值时,它显示为 this 这是一个空白空间。在调试器中,它显示为一个空方块。我会很感激您的意见。
使用 PyChar 2017 1.4