无法使用子进程 Python Windows 10 发送输入参数值

Not able to send input argument values using subprocess Python Windows 10

我是 运行 windows 10 上的主脚本,它使用 python 中的 subprocess 模块调用另一个名为 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。