如何一致地重播事件列表

时间:2012-12-03 17:14:17

标签: c++ python windows

我有一个文件,其中包含一段时间间隔的事件列表。这是一个例子:

0, Hello World
0.5, Say Hi
2, Say Bye

我希望能够重播这一系列事件。第一列是两个连续事件之间的差值(第一列是第一次开始,第二列是0.5秒后,第二列是2秒后,......)

我如何在Windows上执行此操作。有没有什么可以确保我在时间上非常准确?我们的想法是尽可能接近列出某些音乐的内容,你不希望你的音频事件发生在接近正确的时间但恰好按时发生。

2 个答案:

答案 0 :(得分:1)

使用sleep模块中的time函数可以轻松完成此操作。确切的代码应该是这样的:

import time

# Change data.txt to the name of your file
data_file = open("data.txt", "r")

# Get rid of blank lines (often the last line of the file)
vals = [i for i in data_file.read().split('\n') if i]

data_file.close()

for i in vals:
    i = i.split(',')
    i[1] = i[1][1:]
    time.sleep(float(i[0]))

    print i[1]

这是一个不完美的算法,但它应该让你知道如何做到这一点。我们读取文件,将其拆分为换行符分隔列表,然后按指定的秒数浏览每个以逗号分隔的对联,并打印指定的字符串。

答案 1 :(得分:1)

你在Python中寻找time.sleep(...)

如果您将该文件作为列表加载,然后打印值

import time

with open("datafile.txt", "r") as infile:
   lines = infile.read().split('\n')

   for line in lines:
      wait, response = line.split(',')
      time.sleep(float(wait))
      print response