Как мне заставить эту команду unix ... работать в python3?
команда unix
echo 'alter table in db' | zenity --text-info --width 600 --height 300 --title 'has this sql been done?'
Приведенная выше команда выскакивает окно с текстом, и я могу затем захватитьответ пользователя.
В python3 я думал, что могу просто написать это в стандартный поток подпроцесса, но у меня продолжают появляться загадочные ошибки, которые я не могу обойти
ниже - программа на pythonэтот
#!/usr/bin/env python3
import subprocess
cmd = ['zenity', '--text-info', '--width', 600, '--height', 300, '--title', 'has this sql been done?']
pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT)
data='alter table in db'
resp = pipe.communicate(input=data)[0]
этот скрипт на питоне, однако, не работает с
Traceback (most recent call last):
pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT)
File "/usr/lib/python3.6/subprocess.py", line 709, in __init__
restore_signals, start_new_session)
File "/usr/lib/python3.6/subprocess.py", line 1275, in _execute_child
restore_signals, start_new_session, preexec_fn)
TypeError: expected str, bytes or os.PathLike object, not int
любые идеи будут высоко оценены