[python] trim
Radek Kanovsky
rk na dat.cz
Středa Říjen 30 19:12:11 CET 2002
On Wed, Oct 30, 2002 at 06:47:05PM +0100, Dan Holešínský wrote:
> Zdravim vsechny v konfere,
> Mam nasledujici problem: mam binarni soubor (mp3jku) a vytahnu z ni
> poslednich 128 bytu. (ID3tag). Dostanu retezec ve kterem jsou hodnoty
> rozdeleny zhruba :-) nasledovne: dataxxxxdataxxxxx .... pricemz x je znak s
> ascii hodnotou 0 (NUL). Nevedeli byste nekdo jakym zpusobem ocistit data od
> techto znaku? Vyzkousel jsem metody strip() i split() a bez vysledku. Reseni
> je to otevrit v notepadu a ulozit. Pak dojde k prevedeni na znak SPACE.
> Diky moc za kazde tuknuti trochu spravnym smerem.
Nevim, jestli jsem pochopil spravne. Nasledujici kod zameni nuly (ASCII '\0')
za `nic'.
import string
id3tag = 'aaa\0\0\0bbb\0\0\0'
cisty_id3tag = string.replace(id3tag, '\0', '')
vysledek: 'aaabbb'
Pokud by bylo potreba zmenit cely blok nul za neco jineho (treba X), lze to
udelat nasledovne:
import re
id3re = re.compile('\0+')
cisty_id3tag = id3re.sub('X', id3tag)
vysledek: 'aaaXbbbX'
Pokud by napr. bylo potreba rozdelit id3tag na seznam retezcu nenulove delky
neobsahujicich nuly, lze to udelat nasledovne:
import re
id3re = re.compile('\0+')
id3tag_list = filter(lambda x:x, id3re.split(id3tag))
vysledek: ['aaa', 'bbb']
> PS: Pythonu zdar. Programovani v nem je pekna labuz :-))
Tak, tak.
Radek Kaňovský
Další informace o konferenci Python