问题描述
我正在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])
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。