如何在播放该歌曲的声音文件时逐字母读取python中的歌曲[关闭]
Posted
技术标签:
【中文标题】如何在播放该歌曲的声音文件时逐字母读取python中的歌曲[关闭]【英文标题】:How To Read a Song in python letter by letter while playing the sound file of that song [closed] 【发布时间】:2014-03-10 16:45:36 【问题描述】:我正在尝试让 python 在播放歌曲的同时从文本文件中读取歌曲。 它读取歌曲的方式有点像 portal(Still Alive) 的歌曲正在播放。
我觉得这有点棘手,但我需要 python 一次打印出歌曲的每个字母,同时与实际歌曲保持同步。
任何帮助将不胜感激。
问候!
编辑
import urllib.request # Example URL
url = "http://ntl.matrix.com.br/pfilho/oldies_list/top/lyrics/black_or_white.txt" # Open URL: returns file-like object
lyrics = urllib.request.urlopen(url) # Read raw data, this will return a "bytes object"
text = lyrics.read() # Print raw data
print(text) # Print decoded data:
print(text.decode('utf-8'))
编辑:
好的,所以我认为这可能是一个非常广泛的答案,所以这就是我想要做的:只需能够通过从文本文件中读取每个字符来打印它,并能够设置读取/打印它的速度。
【问题讨论】:
到目前为止你有什么? 1) 在歌曲中建立详尽的时间点列表,您希望在其中显示文本。 2) 播放歌曲 3) 根据#1 中生成的列表监控播放时间并根据需要输出文本 @wnnmaw 好吧.. 到目前为止,我查看了互联网并搜索了一些文档,并找到了一些代码。此代码读取文本文件并打印出其内容。code
#!/usr/bin/env python3 import urllib.request # Example URL url="ntl.matrix.com.br/pfilho/oldies_list/top/lyrics/…" # 打开 URL:返回类文件对象 Lyrics=urllib.request.urlopen(url) # 读取原始数据,这将返回一个“字节对象” text=lyrics.read() # 打印原始数据 print(text) # 打印解码数据: print(text.decode('utf-8'))
@MarcB 我是 python 新手,最近才开始学习如何读取文件。任何代码可以帮助我解决你的问题,所以我可以看看?
您尝试做的事情并不难编码(对于新手而言),但它需要@MarcB 正在谈论的详尽列表。您需要知道打印每个字符之间要等待多长时间……这很详尽。
【参考方案1】:
这里有一些基本代码,假设您事先掌握了大量信息。
import sys
from time import sleep
# For python 2 import this
#from itertools import izip as zip
# Delay in seconds to wait before printing each *character* of the song lyrics
time_delays = [0.1, 0.1, 0.1, 0.5, 0.2, 0.1, 0.1]
song_lyrics = "thesong"
print "Let's sing a song..."
for song_char, char_delay in zip(song_lyrics, time_delays):
sleep(char_delay)
sys.stdout.write(song_char)
sys.stdout.flush()
希望对您有所帮助。我使用sys.stdout
而不是print
的原因是因为它更容易控制,并且您需要刷新缓冲区,否则屏幕只会在缓冲区已满时更新。
【讨论】:
代码给了我这个错误:code Traceback (most recent call last): File "C:/Users/User/Desktop/songtest.py", line 3, in <module> from itertools import izip ImportError: cannot import name izip
啊,你一定用的是python 3?我修复了上面的代码。 python 3 中的zip
相当于python 2 中的itertools.izip
。以上是关于如何在播放该歌曲的声音文件时逐字母读取python中的歌曲[关闭]的主要内容,如果未能解决你的问题,请参考以下文章