Я хотел бы написать скрипт на python, который взаимодействует с dmenu.Мне удалось выяснить, что если я хочу, чтобы dmenu принимала только пользовательский ввод, я могу передать
dmenu <&-
, и он отобразит чистое приглашение ввода пользователя.Я знаю, что эквивалентный способ сделать это в Python с использованием подпроцесса -
subprocess.check_output("dmenu <&-", shell=True)
Однако я не думаю, что это лучший способ, так как, если я использую приглашение, оно будет интерпретировать текст приглашения как bashсинтаксис (например, в "dmenu -p 'Project?'" он будет интерпретировать '?').
Есть ли способ использовать подпроцесс. Открыть, чтобы добиться того же?Я перепробовал кучу разных вещей, таких как
subprocess.Popen("dmenu", stdin=None)
import sys
sys.stdin.close()
subprocess.Popen("dmenu", stdin=sys.stdin)
Является ли использование shell = True единственным способом добиться этого?