質問: metropolisさんのご指摘通り、IDLE上ではなく、コマンドプロンプト上で実行すると'\b'が機能し、期待通りの動きとなりました。 本の中の「IDLEではなく、コマンドプロンプトや端末ウィンドウを開いて実行してください。」という記述を見逃していました。 皆様お手数おかけしました。 sys.pyautogui.textwrite()での解決策も勉強になりました。 ただ、他のウィンドウをクリックすると、ほかのウィンドウに字が打ち込まれてしまうところが、 危なっかしいですね。 解決前の追記内容↓ --------- 皆さんありがとうございます。 ### 試し打ち1 dkatoさんの ``` print('abc\bdef') ``` と入力すると、 ``` abc・def ``` と出力されました。 ### 試し打ち2 metropolisさんの ``` print('abc\b', end='') ``` と入力すると、 ``` abc・ ``` と出力されました。 (・の部分は、このウェブサイトの入力欄では”□(白抜きの四角形)”に表示されています。) metropolisさんの引用によると上記「試し打ち1」は、 abdefc と出力されるのではないでしょうか。僕のOSでは、\bがまた違う動きをするようです。 OSはWindows10 Home version1709です。 パソコンは、Lenovo ideapad 720S-13IKBです。 もしかしたらOSを英語版に切り替える必要があるのでしょうか。 コードも書きたいところですが、著作権上そのまま書くわけにはいかないのではないかと思います。対象の行だけ書くと、 ``` print('\b' * len(x), end='', flush=True) ``` となっています。'x'は文字列です。 ちなみにそもそもの目的は、プログラムでコマンドラインに表示した文字を自動で更新していく書き換えることです。(マウスの座標を連続的にコマンドラインに表示するプログラムです。) 自分のパソコンでbackspaceとなるエスケープシーケンスを探してみたいと思います。 また、当初の目的について他の方法があれば、ヒントをくださると大変ありがたいです。
回答: こちらでは、以下のようになりました。 > > print("abc\b") > > abc > > > print("abc\bXYZ") > > abXYZ > > > 環境は、 Windows10 (64bit) PowerShell から、Python3 を実行 (日本語環境) ただし、PowerShell の環境は変更してあり、ctrl-H, ctrl-M がそれぞれ、BackSpace, CR となるようにしてあります。 (関係ありませんでした) どのように変更したかは、確認後、追記したいと思いますが、参考情報として、記載します。 多分、この辺の影響があるのでは無いかと推測しますが、どうでしょうか? 既にコメントが付いていました。 余談ですが、 "\r" ... カーソル位置が行頭に移動します。 (こちらが使えれば、上書きは容易です) "123456789\rabc " ⇒ "abc 6789" "\b"がうまく動作しない状況で難しいとは思いますが、、、。