使用困难子流程检查输出在许多部分使用命令行参数

2024-06-25 05:21:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个命令行工具,我运行如下:

/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'

我猜是空间造成了问题。你知道吗

如何获得与命令行相同的输出?你知道吗


Tags: 工具字符串命令行infromhomeoutput参数
1条回答
网友
1楼 · 发布于 2024-06-25 05:21:45

拆分outstr并将列表中拆分的字符串传递给check_call()。对当前代码进行更改的最简单方法是:

from subprocess import check_call

outstr = " +-+ +  -+ +++-+-+   +-++-+ -+ + ++-++++- + + -++++-+++-++-+-++++  +  -+ -+ ++++ -++-   +  ++++++-++++ -+-      ++  -++    + ++-+-++++ -+++ +++++ +-+  -++-+++  -+++-++ -++++ +-++ ++ -++-+++- + ++++-++  + -+ ++-+ +++  + ++-+++-+ +++++ -++++-+-++++-+++   +++ -++-++-+ ++ + -+-+ -+ +-+++ -+ -++ +++ + + ++-+-+ ++ +   -+-+   -++ +-+ +-+++-+++   -+ -+++   -+++-+  - +-+    ++++++ +-++-+ ++++-+++++++++  -+++++- -+++++-+ -+-++ -++++ - +-+ -+++-+ -+-++ ++ - +-+-++-++++-+    -+-+ +-+++ -++  -+-+ + ++ ++++++-+-++ +  ++-+-+-  -+ ++    +++ + -"

check_call_args = ["/home/user/Dennis"] + outstr.split(' ')
check_call(check_call_args)

其中str.split(' ')将您的字符串拆分为由空格' '分隔的子字符串列表。你知道吗

相关问题 更多 >