编码和解码mp3文件

时间:2014-05-31 15:42:37

标签: python

我想将一个mp3文件保存为文本文件中的编码字符串,但它不适用于我的代码

import sys, base64

f = open(sys.argv[1], 'r')
b = base64.b64encode(f.read())
print sys.getsizeof(b)
f.close()

try:
    file = open(sys.argv[2] + '.txt', 'w')
    file.write(b)
    file.close()
except:
    print('Something went wrong!')
    sys.exit(0)

f = open(sys.argv[2] + '.txt', 'r').read()
b = base64.b64decode(f)
f.close()

try:
    file = open(sys.argv[2] + '2.mp3', 'w')
    file.write(b)
    file.close()
except:
    print('Something went wrong!')
    sys.exit(0)

编码的字符串太短而不能成为完整字符串,因此效果不佳。那么为什么“不”它起作用呢?

1 个答案:

答案 0 :(得分:4)

好的,我已达到个人目标。

正如 pentadecagon 所提到的那样:

  

您需要使用' rb'来打开,因为它是二进制的。使用len而不是sys.getsizeof。

f = open(sys.argv[2] + '.txt', 'r').read()
b = base64.b64decode(f)
f.close()

我将此更改为

f = open(sys.argv[2] + '.txt', 'r')
b = base64.b64decode(f.read())
f.close()

所以我改变了它,当我最终再次创建mp3文件时,你需要写二进制文件' wb' 它有效。