Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 31, 2022 10:20:44

zerg_swarm
Зарегистрирован: 2022-12-31
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Как быстро "разобрать" какой-либо mp3 файл по байтам?

Подскажите, как правильно “разобрать” какой-либо mp3 файл по байтам в Python3?
В последствии передать полученные байты по uart на другой комп.
Ниже кусок кода который работает. Но, очень медленно! Думаю потому, что я каждую итерацию беру mp3 файл и работаю с ним!
В итоге, что бы передать 22 байта из нескольких мегабайт мне потребовалось ждать около 30 мин!

   
import serial
import time
chunk_size = 1  # размер куска
f = open(/home/user/split/music.mp3, 'rb')# Открыть file
file_content = f.read() # Содержимое .mp3 файла сохранили в file_content
f.close()
quotient = len(file_content) // chunk_size # Узнали целочисленное деление 
for k in range(0,quotient):
        with open(/home/user/split/music.mp3, 'rb') as f:
                    for chunk in iter(lambda: f.read(chunk_size), b''):
                        cmd = chunk
                        port.write(cmd)

Вопрос: Как ускорить этот процесс? Может если как-то работать не с mp3 файлом, а с переменной “file_content” которая в оперативке компа?

Отредактировано zerg_swarm (Дек. 31, 2022 10:21:17)

Офлайн

#2 Дек. 31, 2022 13:30:59

Olezhka
Зарегистрирован: 2022-12-13
Сообщения: 118
Репутация: +  0  -
Профиль   Отправить e-mail  

Как быстро "разобрать" какой-либо mp3 файл по байтам?

zerg_swarm
Может если как-то работать не с mp3 файлом, а с переменной “file_content” которая в оперативке компа?
Естественно!

Офлайн

#3 Дек. 31, 2022 16:36:10

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9867
Репутация: +  853  -
Профиль   Отправить e-mail  

Как быстро "разобрать" какой-либо mp3 файл по байтам?

zerg_swarm
Подскажите, как правильно “разобрать” какой-либо mp3 файл по байтам в Python3?
В последствии передать полученные байты по uart на другой комп.
Просто читай его блоками и передавай каждый блок. Не надо его размер вычислять. Конец файла наступает, когда метод .read() возвращает пустую строку.

  
>>> ifname = '/etc/passwd'
>>> 
>>> with open(ifname, 'rb') as fin:
...     block_size = 1024
...     block = fin.read(block_size)
...     while block:
...         print(len(block))
...         block = fin.read(block_size)
... 
1024
1024
796
>>>
  
>>> ifname = '/etc/passwd'
>>> 
>>> with open(ifname, 'rb') as fin:
...     block_size = 512
...     block = fin.read(block_size)
...     while block:
...         print(len(block))
...         block = fin.read(block_size)
... 
512
512
512
512
512
284
>>>



Отредактировано py.user.next (Дек. 31, 2022 16:37:11)

Офлайн

#4 Янв. 4, 2023 22:24:07

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Как быстро "разобрать" какой-либо mp3 файл по байтам?

когда поймешь что такое байты - питон тебе поможет



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#5 Янв. 6, 2023 13:49:42

Olezhka
Зарегистрирован: 2022-12-13
Сообщения: 118
Репутация: +  0  -
Профиль   Отправить e-mail  

Как быстро "разобрать" какой-либо mp3 файл по байтам?

ZerG
когда поймешь что такое байты - питон тебе поможет
Когда изучишь школьную программу русского языка, тебя начнут воспринимать тут всерьез, а не как шкодливого школьника!
"когда поймешь что такое байты - питон тебе поможет" Ну какой же тупорылый школьник так пишет?!
Вот так надо:
Когда поймешь, что такое байты, “Пайтон” тебе поможет!
Ты даже не умеешь правильно писать название языка программирования, на котором ты кодишь!

Отредактировано Olezhka (Янв. 6, 2023 13:50:01)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version