我有一个命令行工具,我运行如下:
/home/user/Dennis --+-+--+-----+--+++-+-+-- --+-++-+---+--+--++-++++- +--+---++++-+++-++-+-++++ --+-----+---+--++++---++- ----+----++++++-++++---+- ----------++-----++------ +--++-+-++++---+++--+++++ +-+-----++-+++-----+++-++ -++++--+-++--++---++-+++- +--++++-++----+---+--++-+ +++----+--++-+++-+--+++++ -++++-+-++++-+++------+++ -++-++-+--++--+---+-+---+ +-+++---+---++--+++--+--+ ++-+-+--++--+-------+-+-- ---++--+-+--+-+++-+++---- -+---+++-------+++-+----- +-+--------++++++--+-++-+ ++++-+++++++++-----+++++- -+++++-+---+-++---++++--- +-+---+++-+---+-++--++--- +-+-++-++++-+---------+-+ +-+++---++-----+-+--+--++ ++++++-+-++--+----++-+-+- ---+--++--------+++--+---
-5258461839360
换句话说,它接受一个长字符串+和-s作为它的命令行参数,用空格隔开。我试着从Python调用它。在ipython我有:
In [1]: outstr = "--+-+--+-----+--+++-+-+-- --+-++-+---+--+--++-++++- +--+---++++-+++-++-+-++++ --+-----+---+--++++---++- ----+----++++++-++++---+- ----------++-----++------ +--++-+-++++---+++--+++++ +-+-----++-+++-----+++-++ -++++--+-++--++---++-+++- +--++++-++----+---+--++-+ +++----+--++-+++-+--+++++ -++++-+-++++-+++------+++ -++-++-+--++--+---+-+---+ +-+++---+---++--+++--+--+ ++-+-+--++--+-------+-+-- ---++--+-+--+-+++-+++---- -+---+++-------+++-+----- +-+--------++++++--+-++-+ ++++-+++++++++-----+++++- -+++++-+---+-++---++++--- +-+---+++-+---+-++--++--- +-+-++-++++-+---------+-+ +-+++---++-----+-+--+--++ ++++++-+-++--+----++-+-+- ---+--++--------+++--+---"
In [2]: from subprocess import check_output
In [3]: check_output(["/home/user/Dennis", outstr])
Out[3]: '-1\n'
我猜是空间造成了问题。你知道吗
如何获得与命令行相同的输出?你知道吗
拆分
outstr
并将列表中拆分的字符串传递给check_call()
。对当前代码进行更改的最简单方法是:其中
str.split(' ')
将您的字符串拆分为由空格' '
分隔的子字符串列表。你知道吗相关问题 更多 >
编程相关推荐