嘿,大家都对我的代码有点意见。每当我女朋友告诉我她不知道在哪里吃饭时,我就给她做一个随机挑选食物的人
我在raspberry pi zero w和云文本到语音API上使用所有的语音工具包,所以命令过程是这样的
---用户按下按钮
“云言在听”
用户说“我们应该去哪里吃饭”
运行rndfoodpkr()--
我还尝试使用omxplayer而不是mixer
def rndfoodpkr():
randomfile= random.choice(os.listdir(/home/pi/share/Programs/FoodPicker/Food/"))
file = '/home/pi/share/Programs/FoodPicker/Food' + randomfile + '/'
os.system ('mixer' + file)
rndfoodpkr()应该运行并选择Food文件夹中的一个随机文件,然后mixer/omxplayer应该运行并播放.mp3文件,但是它会出现此错误
“sh:1:mixer/home/pi/share/Programs/FoodPicker/Food/温迪.mp3/:未找到“
任何文件的结果都是一样的,比如塔考贝尔,麦当劳,阿比斯等等
我自己找到了一个很好的解决方案
谢谢你们的帮助!你知道吗
我发现这个代码有三个问题:
第二行的
/home
前面缺少引号。我怀疑您在发布问题时引入了此错误,因为如果出现此错误,您的程序将根本无法运行。当您生成
file
时,您在错误的位置插入了斜杠——您最终生成的路径如下所示而不是预期的
解决这个问题的一个好方法是将路径赋给一个变量,而不是将它包含在程序中两次,然后使用^{} 组合路径组件,例如:
命令
mixer
和文件名之间没有空格。添加一个:为什么用
/
字符作为文件名的后缀?这意味着可能告诉您要将其传递到的任何应用程序它是一个目录(例如,它可以播放该目录中的每个文件-不一定是这样,但这肯定不是完全奇怪的行为)。你知道吗例如,见以下文字记录:
在任何情况下,我怀疑问题可能是路径和文件名之间缺少空间,命令和参数之间缺少空格。这可能会让你完全掌握:
所以我首先想把
/
移到它所属的地方,把空间放进去,比如:后者(带有
os.path.join
)被认为更便于携带。你知道吗如果您的代码在做了这些更改(或者您想调试)之后仍然无法工作,只需在使用之前打印出命令:
许多问题只要看看计算机所看到的就可以解决。你知道吗
(1)这也适用于妻子,显然:-)
相关问题 更多 >
编程相关推荐