运行 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"。
进入 /tmp
文件夹
cd /tmp
使用您指定的字符串下载音频文件
curl -s -o wordToRead 'http://dict.youdao.com/dictvoice?audio={}'
使用afplay
命令打开该音频文件
afplay wordToRead
删除下载的文件
rm wordToRead
我正在尝试 运行 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"。
进入
/tmp
文件夹cd /tmp
使用您指定的字符串下载音频文件
curl -s -o wordToRead 'http://dict.youdao.com/dictvoice?audio={}'
使用
afplay
命令打开该音频文件afplay wordToRead
删除下载的文件
rm wordToRead