Найти - Пользователи
Полная версия: Запуск программы
Начало » Python для новичков » Запуск программы
1
Orgi
Здравствуйте.
Скажите пожалуйста, как добавить к subprocess еще один запрос?
Сижу на linux, в запускаю через питон программу “geth”, она консольная и работает в терминале.
После ее запуска, мне необходимо получить от нее параметры вот такой командой “web3.fromWei(eth.getBalance(eth.coinbase), ”ether“);”.
Мне предлагается ввести эту команду после указателя “>” руками. Как водить ее автоматически средствами питона? т.е прописать ее в коде.
Прочитал про subprocess communicate, но так и не понял как его использовать.
Спасибо.
#!/usr/bin/env python3
terminal = 'geth --genesis /home/georg/genesis/genesis.json --datadir /home/georg/node1 --networkid 243 --nodiscover --maxpeers 10 --port "30303" console'
import subprocess
PIPE = subprocess.PIPE
p = subprocess.Popen(terminal, shell = True)
p.wait()
gmorgunov
Привет.
Как я понял, вам надо реализовать конвейер команд на питоне с использованием communicate.
Проверьте в терминале:
# geth –genesis /home/georg/genesis/genesis.json –datadir /home/georg/node1 –networkid 243 –nodiscover –maxpeers 10 –port “30303” | web3.fromWei(eth.getBalance(eth.coinbase), “ether”);
Реализация на python 2.7
#!/usr/bin/env python

import subprocess
command1='geth --genesis /home/georg/genesis/genesis.json --datadir /home/georg/node1 --networkid 243 --nodiscover --maxpeers 10 --port "30303" console '
command2='web3.fromWei(eth.getBalance(eth.coinbase), "ether"); '
p1=subprocess.Popen(command1, shell=True, stdout=subprocess.PIPE)
p2=subprocess.Popen(command2, shell=True, stdin=subprocess.PIPE)
p2.communicate(p1.stdout.read())
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