2

友達、

簡単なスクリプトがあります

import subprocess

subprocess.call(["./run_xf"])

old=open('./inv.mt0','r')

lines=old.readlines()

lines=lines[3:]

new=open('./inv.mt1','w')

new.writelines(lines)

old.close()

new.close()

subprocess.call(["rm", "inv.mt0"], shell=True)

最後のコードを除いて、すべてのコードが機能します。

run_xfはhspiceを実行し、inv.mt0を生成します。次に、inv.mt0の一部をinv.mt1にコピーします。次に、inv.mt0を削除します。しかし、これは機能しません。

この特定の例では、rmがオペランドを見つけることができないと文句を言います。しかし、一緒に書いてもファイルは削除されません。

ありがとう

xf

4

1 に答える 1

6

使用している場合は、リストではなくshell=True文字列をに渡す必要がありますsubprocess.call。詳細については、 http://docs.python.org/library/subprocess.html#subprocess.callを参照してください。

shell=Trueただし、セキュリティ上の影響があるため、でサブプロセスを呼び出すことはお勧めしません。shell=Trueリストスタイルの引数を削除してそのままにしておく必要があります。

于 2012-08-20T22:30:03.990 に答える