запись данных в файл fifo в python - PullRequest
0 голосов
/ 13 января 2020

Я записал один аудиофайл и преобразовываю этот файл в формат base64. Теперь я хочу записать этот аудиофайл в файл fifo. Код написан ниже:

import os 
import base64
import select
os.system("mkfifo audio1.fifo")
with open("audio1.fifo") as fifo:
     select.select([fifo],[],[fifo])
     with open("out1.wav","rb") as audioFile:
         str = base64.b64encode(audioFile.read())
         fifo.write(str)

Но выше код только создает файл fifo, но ничего не записывает в него. Пожалуйста, дайте какие-либо предложения.

1 Ответ

0 голосов
/ 13 января 2020

Использование + модели может одновременно поддерживать чтение и запись

import base64
import select
os.system("mkfifo audio1.fifo")
with open("audio1.fifo", "wb") as fifo:
     select.select([fifo],[],[fifo])
     with open("out1.wav","rb") as audioFile:
         str = base64.b64encode(audioFile.read())
         fifo.write(str)

Одновременно чтение и запись двух разных файлов:

# maker sure the be read file's has some data.
with open("a.file", "w") as fp:
    fp.write("some data")

# now a.file has some data, we create a b.file for write the a.file's data.
with open("b.file", "w") as write_fp, open("a.file", "r") as read_fp:
    write_fp.write(read_fp.read())

# for bytes data
with open("b.file", "wb") as write_fp, open("a.file", "rb") as read_fp:
    write_fp.write(read_fp.read())
...