Что делать, если я хочу вызвать команду как терминал (ubuntu) из python 2.7, поэтому я хочу использовать nfc-mfclassic, который он может использовать в терминале ubuntu... Кто-то может помочь мне использовать это в python, пожалуйста.
Я запускаю эту вещь: nfc-mfclassic ra 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
Вы можете использовать подпроцесс напрямую, но есть пара очень хороших оберток подпроцессов, которые сделают вашу жизнь намного проще.
Мне нравится 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')
>>> import subprocess
>>> command = raw_input()
nfc-mfclassic r a dumptest.mfd
p = subprocess.Popen(command)
команда - это именно то, что вы набрали в командной строке shell. сложная часть - правильно форматировать текст команды.
ref: http://docs.python.org/library/subprocess.html#module-subprocess