擅长:python、mysql、java
<p>我发现这个代码有三个问题:</p>
<ol>
<li><p>第二行的<code>/home</code>前面缺少引号。我怀疑您在发布问题时引入了此错误,因为如果出现此错误,您的程序将根本无法运行。</p></li>
<li><p>当您生成<code>file</code>时,您在错误的位置插入了斜杠——您最终生成的路径如下所示</p>
<pre><code>/home/pi/share/Programs/FoodPicker/FoodFilename.mp3/
^^ ^
</code></pre>
<p>而不是预期的</p>
<pre><code>/home/pi/share/Programs/FoodPicker/Food/Filename.mp3
^ ^
</code></pre>
<p>解决这个问题的一个好方法是将路径赋给一个变量,而不是将它包含在程序中两次,然后使用<a href="https://docs.python.org/3/library/os.path.html#os.path.join" rel="nofollow noreferrer">^{<cd3>}</a>组合路径组件,例如:</p>
<pre><code>path = "/home/pi/share/Programs/FoodPicker/Food"
randomfile = os.path.join(path, random.choice(os.listdir(path)))
</code></pre></li>
<li><p>命令<code>mixer</code>和文件名之间没有空格。添加一个:</p>
<pre><code>os.system("mixer " + randomfile)
^^^
</code></pre></li>
</ol>