Python脚本,运行良好,但不完美,有助于调试

2024-05-01 22:11:26 发布

您现在位置:Python中文网/ 问答频道 /正文

它的作用(有点)。。。或者说,脚本从包含声音文件信息的csv文件中读取,并创建一个正好60分钟长的播放列表。在

csv示例包含:

their title, duration (in seconds), minium total time to be played (in minutes)

例如:

^{2}$

脚本计算出播放的最小实例,以“Soundfoo”为例,每个样本的长度为120秒,最少播放时间为10分钟,因此基础数学10*60/120给出了歌曲要播放的实例数,本例为5。在

它意味着使用最少数量的实例,并且彼此平均分布;因此永远不会有一个时间段,例如连续播放两次Soundbar。在

那么,如果每首歌的最小实例已经被使用,并且在60分钟内仍然有时间,那么如何能够告诉它返回并填充时间,方法是选择每个声音并将其包含到60分钟,同时保持稀疏填充。在

问题就在这里!

脚本无法计算播放一个文件中所有声音所需的实际时间和播放列表的总时间,问题是它不会一直出错,可能是3/5次,即使我在同一个csv文件上运行它,它也会给我不同的答案。在

以下是我将在e上运行脚本的文件,以便于查看问题:

Sound1,60,10
Sound2,60,10
Sound3,60,10
Sound4,60,10
Sound5,60,10
Sound6,60,10

我会做三次,然后公布结果:

1 所需播放时间(分钟):60 播放所有必需广告的实际时间(分钟):62 总游戏时间(分钟):62.0

2 所需播放时间(分钟):60 播放所有必需广告的实际时间(分钟):71 总游戏时间(分钟):71.0

3 所需播放时间(分钟):60 播放所有必需广告的实际时间(分钟):60 总游戏时间(分钟):60.0

相关代码:

在pastebin.com/demkBXk6在

最后。。。在上下文中:

http://pastebin.com/demkBXk6

如果你能来这里,谢谢你留下来读书,真是太好了。在


Tags: 文件csv实例in脚本com信息声音
2条回答

我运行了你的代码好几次,得到的结果总是和下面所示的一样。我不能复制你的问题。在

编辑:对不起,是的,现在我看到问题了。在

问题出在第一个while循环中 我会拿走这个循环中的一切。这段代码太复杂了,因此需要一个bug。可以更简单、更清晰地完成:

如果你想要的是随机乱序播放列表,你只需要做

random.shuffle(required_playlist)

这将重新排列列表。 要填充实际的游戏字典,可以使用defaultdict

^{pr2}$

这显然可以在洗牌之前或之后完成。在这一步中,你不可能获得与你定义的最小重复次数不同的重复次数。在

干杯 华金

我猜这与您在整个脚本中使用random库有关。试着把你的程序分解成包含离散逻辑位的函数,并命名以反映它们的功能。在

相关问题 更多 >