python - 无法使用子进程 Python Windows 10 发送输入参数值
问题描述
我在 Windows 10 上运行一个主脚本,该脚本使用subprocess
python 中的模块调用另一个名为 audioplayer.py 的脚本。
我想在调用 audioplayer.py 时发送一些输入参数。所以我写了主脚本如下:
以下是主要脚本:
from subprocess import call
call(["python", "C:/Users/Jeff/Documents/audioplayer.py", "hey.wav"])
以下是我的 audioplayer.py:
"""OpenAL playback example."""
import os, sys, time
from openal.audio import SoundSink, SoundSource
from openal.loaders import load_wav_file
if len (sys.argv) < 2:
print ("Usage: %s wavefile" % os.path.basename(sys.argv[0]))
print (" Using an example wav file...")
dirname = os.path.dirname(__file__)
fname = os.path.join(dirname, "default.wav")
else:
fname = sys.argv[1]
sink = SoundSink()
sink.activate()
source = SoundSource(position=[10, 0, 0])
source.looping = True
data = load_wav_file(fname)
source.queue(data)
sink.play(source)
source.position = [source.position[0], source.position[1], source.position[2]]
sink.update()
time.sleep(2)
print("playing at %r" % source.position)
但是即使该文件确实存在于与 audioplayer.py 相同的目录中,我仍然会收到以下错误
FileNotFoundError: [Errno 2] No such file or directory: 'hey.wav'
hey.wav
如果我在主脚本中删除,它运行良好。它似乎不需要任何论据。
解决方案
尝试这个:
call(["python", "C:/Users/Jeff/Documents/audioplayer.py", "C:/Users/Jeff/Documents/hey.wav"])
运行最后一个时,目录与 main.py 相同,而不是 audioplayer.py。
推荐阅读
- javascript - 如何防止过滤器制作空数组?
- exception - 当对用户定义的异常使用“raise”时,它在“try”下不起作用
- sql - 忽略给定单词的大小写敏感
- linux - 在脚本中使用 for,Ubuntu 命令行
- python-3.6 - 气流调度程序卡住
- python - 如何通过 subprocess.call(...) 返回普通用户?
- javascript - 使用 XSLT 编写 DHTML
- python - 为什么我的 Excel 工作表被清除了?使用 openpyxl
- groovy - Groovy 按数字顺序排序字符串格式的 docker 标签
- python - 如何使用 python youtube data api 获取 youtube 频道、名称和订阅者数量的表格