2012-05-07 18 views
1

Python 2.7から端末(ubuntu)のようなコマンドを呼び出すにはどうすればいいですか? ubuntuのターミナルで使用できるnfc-mfclassicを使いたいです...誰かあなたが直接、サブプロセスを使用することができ、端末内nfc-mfclassic r a dumptest.mfd(Ubuntuの)Pythonでサブプロセスモジュールを使用する方法

Usage: nfc-mfclassic r|w a|b <dump.mfd> [<keys.mfd>] 
    r|w   - Perform read from (r) or write to (w) card 
    a|b   - Use A or B keys for action 
    <dump.mfd> - MiFare Dump (MFD) used to write (card to MFD) or (MFD to card) 
    <keys.mfd> - MiFare Dump (MFD) that contain the keys (optional) 
Or: nfc-mfclassic x <dump.mfd> <payload.bin> 
    x    - Extract payload (data blocks) from MFD 
    <dump.mfd> - MiFare Dump (MFD) that contains wanted payload 
    <payload.bin> - Binary file where payload will be extracted 

答えて

1

、それは非常に良いサブプロセスラッパーのカップルがあります:私はこの事を実行し、私は.. pythonで

をことをしてください使用することを助けることができますあなたの人生はずっと楽になります。私はPBSが好き

PBSは、動的にPythonの関数にシステムプログラムをマップするユニークなサブプロセスのラッパーです。 PBSは、Pythonの力と柔軟性を備えたBash(簡単なコマンド呼び出し、簡単な配管)の優れた機能を提供することで、Pythonでシェルスクリプトを書くのに役立ちます。

例:

import pbs 
print pbs.nfc_mfclassic("r", "a", "dumptest.mfd") 

あなたが繰り返しアプリケーションに対処したい場合は、おそらくあなたはpyexpectのようなものを探してください:

# This connects to the openbsd ftp site and 
# downloads the recursive directory listing. 
import pexpect 
child = pexpect.spawn ('ftp ftp.openbsd.org') 
child.expect ('Name .*: ') 
child.sendline ('anonymous') 
child.expect ('Password:') 
child.sendline ('[email protected]') 
child.expect ('ftp> ') 
child.sendline ('cd pub') 
child.expect('ftp> ') 
child.sendline ('get ls-lR.gz') 
child.expect('ftp> ') 
child.sendline ('bye') 
+0

ありがとう、それは私にとって非常に便利です – user1376294

0
>>> import subprocess 
>>> command = raw_input() 
nfc-mfclassic r a dumptest.mfd 

p = subprocess.Popen(command) 

コマンドを使用すると、入力した正確に何でありますシェルのcmdlineで。難しいのは、コマンド・テキストを適切にフォーマットすることです。

ref:http://docs.python.org/library/subprocess.html#module-subprocess

関連する問題