2015-03-15 3 views
-1

У меня возникли трудности с запуском ниже запроса. Может ли кто-нибудь помочь мне в этом вопросе?Python3 run os.popen с аргументом?

def test(): 
cmd="python /home/shanaka/volapp/volatility-2.3.1/vol.py -f /home/shanaka/memory_sample/ubuntu-12.04-amd64-jynxkit.mem ---profile={0} {1}".format(OSselection.get(),option.get()) 
f1 = os.popen3(cmd) 
for lt in f1.readlines(): 
    print(lt) 

Это не печатает, Option.get принимает в качестве другой команды, ошибка, как показано ниже:

Volatility Foundation Volatility Framework 2.3.1 

ОШИБКА: главный: Вы должны указать что-то делать (попробуйте -h) /bin/sh: 2: linux_banner: не найдено

Пожалуйста, помогите мне решить эту проблему.

+0

это не ваш фактический код; в Python 3.4 нет 'os.popen3'. Есть и другие проблемы. 1. Убедитесь, что вы можете запустить 'vol.py' вручную из командной строки 2. Используйте модуль подпроцесса для его запуска (передать аргументы в виде списка) – jfs

+0

Я использовал подпроцесс, который дает так много ошибок. Вот почему Я использовал это, без переменной этот код работает. Когда я помещаю переменную, не работаю. – SLS

+0

включают код без переменных, который «работает». – jfs

ответ

0

f1 = os.popen("python /home/shanaka/volapp/volatility-2.3.1/vol.py -f /home/shanaka/memory_sample/ubuntu-12.04-amd64-jynxkit.mem --profile="+OSselection.get().rstrip()+" "+ option.get().rstrip())

аргумент взяв в качестве новой строки, так что я должен удалить новую строку.

Смежные вопросы