shell - python如何实现在一个脚本里的多次交互?
黄舟
黄舟 2017-04-18 09:30:31
0
1
782

万恶的主管要求写一个针对于阿里云服务器的自动挂载的脚本,其实这种脚本不难,网上找找随便都有,但是比较恶心的是,主管非要求要用python去写,美其名曰“可读性强”。

于是本菜鸟为了绩效就开始写,但是写着写着就到了一个窘境,因为在 fdisk /dev/vdb的时候,是需要连续输入:“n p 1 回车 回车 p w ” 这六个信息需要反馈给系统才能顺利的分区,要是一次交互,到还好办,但是这样一次性要多次交互怎么破?难道必须要用pexpect去实现吗?

使用 os.system("fisk /dev/xvdb << End
n
p
1

p
w
End")
频频报错
本菜鸟环境是python 2.6.6

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全員に返信(1)
Peter_Zhu

サブプロセスを使用するだけです。たとえば、次のプログラムでは名前と年齢の入力が必要です:

リーリー

次のように John と 20 を対話的に入力することで、上記のプログラムを呼び出すことができます:

リーリー

StackOverflow にはこのような質問がたくさんあります。
Python を使用した対話型入出力
Python サブプロセスとユーザー操作
Python - (stdin 引数を使用して) subprocess.Popen に文字列を渡すにはどうすればよいですか?

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート