【发布时间】:2021-05-19 09:11:28
【问题描述】:
我有一个 python 脚本(不是我创建的),我们称之为 myscript,我用几个参数调用它。 所以我在 Windows cmd 中运行这样的脚本: 代码:
/wherever/myscript --username=whoever /some/other/path/parameter
然后出现提示,我可以将参数传递给python脚本:
Process started successfully, blabla
Python 2.7.2 blabla
(LoggingConsole)
>>>
然后我写我的东西,然后退出回到 cmd:
>>> command1()
>>> command2()
>>> quit()
我怀疑这部分发生了一些错误,但一百次试验只有一次。所以我想通过一个脚本来做。 我想通过管道将内部 command1 command2 传递给这个脚本,这样我就可以测试这个函数一千次,看看它什么时候坏了。我有以下代码:
echo 'command1()' | py -i /wherever/myscript --username=whoever /some/other/path/parameter
不幸的是,这不会产生与手动输入相同的行为。 我可以用管道/重定向输出模拟这种行为吗?为什么它不起作用?我希望脚本等待命令时会输入“command1()”文本,但似乎我错了。
谢谢!
编辑 2021 年 2 月 16 日下午 3:33:
- 我一直在寻找解决这个问题的 cmd shell 方法,没有 python 的东西
- 剧本
echo 'command1()' | py -i /wherever/myscript --username=whoever /some/other/path/parameter
几乎是正确的,只需删除'':
echo command1() | py -i /wherever/myscript --username=whoever /some/other/path/parameter
我的问题来自 myscript。一旦我修复了这一侧的奇怪东西,这部分就一切正常了。您甚至可以将所有命令放在一起:
echo command1();command2();quit(); | py -i /wherever/myscript --username=whoever /some/other/path/parameter
这个问题改编自 unix.com 上 gplayersv 2012 年 8 月 23 日的一个问题,但最初的目的使这个问题没有得到回答。
【问题讨论】:
标签: python shell cmd pipe stdin