Что это за синтаксическая ошибка, относящаяся к звуковому коду avr для преобразования необработанного аудиофайла в файл .h для IDE Arduino - PullRequest
0 голосов
/ 30 июня 2019

Я пытаюсь преобразовать аудиофайл в формат .h, который Arudino может прочитать, и я могу использовать его для воспроизведения звука через динамик без использования модуля SD-карты. Итак, я следовал этому учебнику, чтобы использовать эту avr sound программу от Github для конвертации аудио. Он дал мне указание использовать эту программу на python для преобразования, однако в командной строке выдается ошибка, сообщающая, что в строке 23, где находится вторая кавычка, есть синтаксическая ошибка. Есть идеи, что я сделал не так или как я могу это исправить?

#! /usr/bin/python

import sys, os, os.path
from avr_snd import *

SEGMENT_MAX = 256
SEGMENT_TMP = """
#define %s%d_len %d
const unsigned char %s%d[] PROGMEM=%s;

"""

PLAY_TMP = """
void play_%s() {
%s
}
"""

def convert(prefix, file_i, file_o):
    a=array.array('B', (open(file_i, 'r').read()))
    i,j=analyze(a)
    b=array.array('B', compress(a,i,j)).tostring()
    print "size=", len(b)
    out=open(file_o, "w+")
    for l, i in enumerate(range(0, len(b), SEGMENT_MAX)):
        segment=b[i:i+SEGMENT_MAX]
        out.write( SEGMENT_TMP % (prefix, l, len(segment), prefix, l, repr(segment).replace("'", '"')))
    out.write(PLAY_TMP % (prefix, "\n".join(map(lambda i: "avr_sound_play(%s%d, %s%d_len);" % (prefix, i, prefix, i), range(l+1)))))
    out.close();

def main():
  file_i=sys.argv[1]
  prefix='.'.join(os.path.basename(file_i).split('.')[:1])
  file_o=os.path.join(os.path.dirname(file_i), prefix+".h")
  convert(prefix, file_i, file_o)

if __name__ == "__main__":
    main()

Командная строка выдает мне это сообщение об ошибке при попытке конвертировать файл.

  File "snd2h.py", line 23
    print "size=", + len(b)
                ^
SyntaxError: invalid syntax

1 Ответ

0 голосов
/ 30 июня 2019

Оператор print не существует в Python 3, вместо него необходимо использовать функцию print().

См. https://docs.python.org/3/whatsnew/3.0.html#print-is-a-function

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...