我正在尝试在Python中运行一些zsh命令,我有一个输入变量。我不熟悉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代码到底做了什么。但是,它会播放wordToRead的音频。
如何解决?
答案 0 :(得分:1)
就像我说的那样,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)
我甚至不知道zsh代码究竟做了什么
它被称为 shell 脚本,它不是“zsh代码”。
进入/tmp
文件夹
cd /tmp
使用您指定的字符串下载音频文件
curl -s -o wordToRead 'http://dict.youdao.com/dictvoice?audio={}'
使用afplay
命令打开该音频文件
afplay wordToRead
删除下载的文件
rm wordToRead