我一直试图用Popen
运行一个进程,但没有成功。代码的部分是:
setCmd=['--set-tag="COMPOSER=J S Bach"', '--set-tag="ALBUM=Goldbergovske variace BWV 988"', '--set-tag="TRACKNUMBER=01"', '--set-tag="TITLE=Aria"']
pipe = subprocess.Popen(["metaflac"] + setCmd + [file],stdout=subprocess.PIPE)
似乎metaflac没有运行。简单的测试
pipe = subprocess.Popen(["metaflac"] + ["--version"],stdout=subprocess.PIPE)
很好地表明问题可能出在setCmd
。更具体地说,我想引用as几乎总是麻烦的根源。你知道吗
如何更正代码?你知道吗
我还尝试了多种变体,如:
args=" ".join(setCmd)
然后预处理并附加args
,这样我就可以像这样运行它:
pipe = subprocess.Popen(args,stdout=subprocess.PIPE)
在哪里
args='metaflac --set-tag="COMPOSER=J S Bach" --set-tag="ALBUM=Goldbergovske variace BWV 988" --set-tag="TRACKNUMBER=01" --set-tag="TITLE=Aria" filename.flac'
也不起作用。你知道吗
你的意思是在
Popen
行中使用setCmd
而不是args
?你知道吗此外,您可能需要删除
setCmd
元素中的双引号,即在终端中键入命令时,它们很重要,因为它们让shell知道如何拆分参数,但是,在这里,您已经将参数拆分为字符串列表。
metaflac
也许能对付他们,但也许不行。你知道吗相关问题 更多 >
编程相关推荐