Metaflac输出hexdump而不是文本

时间:2013-09-09 17:09:50

标签: python hexdump flac

我实际上是想用python获取flac文件的元数据。我用this作为基础,但我遇到了问题。 metaflac使用此命令为我提供了一个hexdump(也在终端中):

的Python:

flacdata = os.popen("metaflac --list --block-number 2 /data/Music/test.flac")

终端:

metaflac --list --block-number 2 /data/Music/test.flac

但是手册页指出:

--list
List the contents of one or more metadata blocks to stdout. 
By default, all metadata blocks are listed in text format.

终端输出:

metaflac --list --block-number 2 --data-format=text /data/Music/test.flac | tail
000497D0: F7 68 A2 BA 3F 94 C9 0E 87 FD 62 9E FB 7A FF 00 .h..?.....b..z..
000497E0: C0 56 8C 63 CE EF F3 77 E7 F8 68 A2 AA 3F 11 9C .V.c...w..h..?..
000497F0: F6 2D C7 23 79 6D C9 FF 00 F5 74 AD 28 24 78 D1 .-.#ym....t.($x.
00049800: A1 56 61 16 F6 6D B9 E3 28 C3 67 E5 BD BF 3A 28 .Va..m..(.g...:(
00049810: AC 24 74 33 D8 7E 03 78 3F 47 D7 BC 75 E1 F8 EF .$t3.~.x?G..u...
00049820: EC 84 E8 D7 B1 A9 5D EC B9 03 C8 C7 42 3F BE DF ......].....B?..
00049830: 9D 7E C2 C3 6D 15 AB 45 6B 0A 08 ED D2 25 55 8D .~..m..Ek....%U.
00049840: 7A 01 45 15 34 BF 88 7C BE 73 F1 44 41 F3 47 93 z.E.4..|.s.DA.G.
00049850: C9 F9 A9 D1 C4 9B 07 CA 28 A2 B6 AD F1 9E 11 FF ........(.......
00049860: D9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .

任何提示如何解决这个问题?我想要文字输出......

1 个答案:

答案 0 :(得分:1)

看起来返回的块是PICTURE块,它不能作为文本列出,因为它是二进制数据。

如果您不想显示图片块添加

--except-block-type=PICTURE

虽然如果块2是图片块,您将无法获得任何输出。

如果只需要有关图像的数据,可以解析输出并剪切数据部分。