1

python 2.7からterminal(ubuntu)のようなコマンドを呼び出したいので、ubuntuのターミナルで使用できるnfc-mfclassicを使用したい場合はどうすればよいですか...誰かがpythonでそれを使用するのを手伝ってくれます。

私はこれを実行します:nfc-mfclassic r a dumptest.mfdターミナル(Ubuntu)で

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
4

2 に答える 2

1

サブプロセスを直接使用することもできますが、作業を大幅に楽にする非常に優れたサブプロセスラッパーがいくつかあります。

私は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 ('noah@example.com')
child.expect ('ftp> ')
child.sendline ('cd pub')
child.expect('ftp> ')
child.sendline ('get ls-lR.gz')
child.expect('ftp> ')
child.sendline ('bye')
于 2012-05-07T04:05:22.660 に答える
0
>>> import subprocess
>>> command = raw_input()
nfc-mfclassic r a dumptest.mfd

p = subprocess.Popen(command)

コマンドは、シェルコマンドラインに入力したものとまったく同じです。難しいのは、コマンドテキストを適切にフォーマットすることです。

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

于 2012-05-07T04:06:06.950 に答える