运行 shell python 中的脚本以播放 OS 中的音频文件 X

Run shell script in python to play audio file in OS X

我正在尝试 运行 Python 中的一些 zsh 命令并且我有一个变量 input.I 我不熟悉 zsh 所以我尝试像在 Applescript 中那样处理它但失败了。

wordToRead = getClipboardData()

p = subprocess.Popen(
        ['/usr/bin/zsh', '-'] + [wordToRead], 
        stdout=subprocess.PIPE, stderr=subprocess.PIPE,
        stdin=subprocess.PIPE)

scpt = '''
cd $TMPDIR
curl -o wordToRead 'http://dict.youdao.com/dictvoice?audio=wordToRead'
afplay wordToRead
rm wordToRead
'''

p.communicate(scpt)

其实我什至不知道zsh代码是做什么的exactly.However,它会播放wordToRead的音频作为结果。

如何解决?

就像我说的,zsh 不是必需的,Unix 系统上 subprocess 命令的默认设置是 /bin/sh,它可以 运行 脚本就好了。

import subprocess

wordToRead = getClipboardData()

scpt = '''
cd /tmp
curl -s -o wordToRead 'http://dict.youdao.com/dictvoice?audio={}'
afplay wordToRead
rm wordToRead
'''.format(wordToRead)

p = subprocess.call(scpt, shell=True)

I even don't know what the zsh code do exactly

它被称为shell脚本,它不是"zsh code"。

  1. 进入 /tmp 文件夹

    cd /tmp
    
  2. 使用您指定的字符串下载音频文件

    curl -s -o wordToRead 'http://dict.youdao.com/dictvoice?audio={}'
    
  3. 使用afplay命令打开该音频文件

    afplay wordToRead
    
  4. 删除下载的文件

    rm wordToRead