Найти - Пользователи
Полная версия: Клиент для терминала.
Начало » Python для новичков » Клиент для терминала.
1
zazaza
Здравствуйте! Появился такой вопрос, как реализовать подобие терминала на Python, при этом что бы после ввода команд “cd ..” и “ls”, выводился список файлов не текущей директории а предыдущей?

Например в этих двух вариантах это не работает:
result = getoutput('cd ..')
result = getoutput('ls')

result = os.system('cd ..').read()
result = os.system('ls').read()

Я так понимаю в обоих случаях директория меняется, но после этого процесс взаимодействия с терминалом закрывается и комада ls уже применяется к папке где расположен скрипт.

Нашел модуль pexpect, но не могу понять как мне передать команду в процесс и получить ответ на нее…
Может быть кто-нибудь с подобным уже сталкивался?

Заранее спасибо за ответы!
zloyGamer
предложу самый нелогичный но свой вариант:
записывать все команды в cmd/bat файл, затем выполнять его,
для его очистки придумать какую нить свою спец. команду
zloyGamer
это конечно самый нереальный вариант, если ты так сделаешь я буду тебя ненавидеть ))

неделай так..
zazaza
Во-первых в любом случае bat-ники мне не подойдут, я работаю на Linux.
Во-вторых команды поступают время от времени, а не все сразу, иначе я бы просто сделал: “cd ..; ls”

Может быть кто-нибудь еще что то подскажет?
UsCr
zazaza
Во-первых в любом случае bat-ники мне не подойдут, я работаю на Linux
.sh

А если проблема только с cd, то запоминайте где в каком каталоге в данный момент находиться пользователь и следующую команду применяйте в виде cd /path; command
zazaza
Это то понятно… тоже было такое решение но мне кажется это “костыли”… которые могут когда то и сломаться…
o7412369815963
не совсем понятно что нужно и для чего. подробнее опишите - тогда предложим варианты решения.

ls можно запустить из любой папки (хоть из предыдущей) через Popen
o7412369815963
можно перехватывать команду “cd” и выполнять её вручную: os.chdir(), после, все последующие команды будут выполняться из выбранной папки
Ed
getoutput(“cd ..&&ls”)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB