Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对mp3文件进行编码和解码_Python - Fatal编程技术网

Python 对mp3文件进行编码和解码

Python 对mp3文件进行编码和解码,python,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('So

我想将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)

编码的字符串太短,不能作为完整字符串,因此结果不好。那它为什么不起作用呢?

好的,我已经达到了我的个人目标

正如五角大楼提到的:

您需要使用“rb”调用open,因为它是二进制的。使用len而不是sys.getsizeof

我把这个改成了

f = open(sys.argv[2] + '.txt', 'r')
b = base64.b64decode(f.read())
f.close()
所以我改变了它,当我最终再次创建mp3文件时,您需要编写二进制“wb”
这很有效。

好的,我已经达到了我的个人目标

正如五角大楼提到的:

您需要使用“rb”调用open,因为它是二进制的。使用len而不是sys.getsizeof

我把这个改成了

f = open(sys.argv[2] + '.txt', 'r')
b = base64.b64decode(f.read())
f.close()
所以我改变了它,当我最终再次创建mp3文件时,您需要编写二进制“wb” 它可以工作。

您需要使用“rb”调用open,因为它是二进制的。使用len而不是sys.getsizeof。这是Python2还是Python3?您需要使用“rb”调用open,因为它是二进制的。使用len而不是sys.getsizeof。这是Python 2还是Python 3?