0

我被困在python subprocess.Popen。我想要的只是开始八度音程

process = subprocess.Popen(['octave.exe', '--eval "1+1"'], stdout=subprocess.PIPE)
process.wait()
print(process.stdout.read())

但我得到的只是

octave.exe: unrecognized option '--eval "1+1"'

usage: octave [-HVdfhiqvx] [--debug] [--echo-commands] [--eval CODE]
   [--exec-path path] [--help] [--image-path path] [--info-file file]
   [--info-program prog] [--interactive] [--line-editing]
   [--no-history] [--no-init-file] [--no-init-path] [--no-line-editing]
   [--no-site-file] [--no-window-system] [-p path] [--path path]
   [--silent] [--traditional] [--verbose] [--version] [file]

当我从 shell 调用 octave 时,我得到

Shell: octave --eval "1+1"
GNU Octave, version 3.6.1
Copyright (C) 2012 John W. Eaton and others.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  For details, type `warranty'.

Octave was configured for "i686-pc-mingw32".

Additional information about Octave is available at http://www.octave.org.

Please contribute if you find this software useful.
For more information, visit http://www.octave.org/help-wanted.html

Read http://www.octave.org/bugs.html to learn how to submit bug reports.

For information about changes from previous versions, type `news'.

ans =  2

系统运行 Windows 7 x64。

4

1 回答 1

0

“subprocess.list2cmdline”用于构建路径。任何空格和引号都将被转换。因此以下参数列表是正确的。

args = ["octave.exe", "--eval", '1+1']
print(subprocess.list2cmdline(args))
于 2012-04-09T09:18:16.463 回答