ctrl-O は、他の文字と同じように単なる文字です。書くことで送信できます'\x0f'
(または、Python 3 では、b'\x0f'
)。
しかし、それはおそらくあなたに何の役にも立たないでしょう。ターミナルでインタラクティブな GUI を提供するほとんどのプログラムは、nano
stdin によって駆動できません。彼らは端末を制御する必要があり、それを行うには、そのstdinisatty
をチェックしてからそれをチェックするかtcsetattr
、単に open /dev/tty
、
os.openpty
、os.forkpty
、またはで疑似端末を作成することで、これに対処できますpty
。
pexpect
しかし、多くの場合、インタラクティブなプログラムや GUI などを扱うようなライブラリを使用する方が簡単です。
そもそも対話型プログラムを実行しようとしない方が簡単です。たとえば、 とは異なりnano
、ed
はスクリプトによって「バッチ モード」で駆動されるように設計されており、sed
さらにそのように設計されています。
また、Python で直接簡単に実行できることを実行しようとしているときに、プログラムをまったく実行しない方が簡単です。ファイルに何かを追加する最も簡単な方法はopen
、'a'
モードでファイルに追加write
することです。外部プログラムはまったく必要ありません。例えば:
new_line = input('What do you want to add?')
with open(fname, 'a') as f:
f.write(new_line)
あなたが使用していた唯一の理由がnano
何かが必要だったからであるならsudo
…その理由は本当にありません. や別の Python スクリプトなど、sudo
他のことも同じように簡単に行うことができます。sed
を使用するnano
と、まったく理由もなく、自分にとって物事が難しくなります。
ここでの大きな問題は、Python スクリプトで書き込みできないファイルがあるのに、任意のリモート ユーザーが追加できるようにしたいのはなぜですか? それは非常に悪いシステム設計のように思えます。通常のユーザーによるファイルの変更を制限するために、ファイルを書き込み不可にします。リモート ユーザーに代わって Python スクリプトでスクリプトを変更できるようにしたい場合、スクリプトを実行するのと同じユーザーが所有していないのはなぜでしょうか?