シリアルコンソールの上の行の何かを上書きしたいと思います。上に移動できるキャラクターはありますか?
ありがとうございました。
ほとんどの端末は ANSIエスケープコード を理解します。このユースケースに関連するコード:
"\033[F"
–前の行の先頭にカーソルを移動します"\033[A"
–カーソルを1行上に移動します例(Python):
print("\033[FMy text overwriting the previous line.")
いいえ、本当に簡単ではありません。そのため、特にカーソルの配置をより細かく制御し、プログラムでより多くのことを行いたい場合は、 curses library のようなものを使用する必要があります。
Python docs on Programming with Curses のドキュメントへのリンクです。この短い tutorial/example も興味深いかもしれません。
Windowsを使用している場合、 docs でこのノートを見つけました。
CursesモジュールのWindowsへの移植は誰も行っていません。 Windowsプラットフォームでは、Fredrik Lundhが作成したコンソールモジュールを試してください。コンソールモジュールは、カーソルでアドレス指定可能なテキスト出力に加えて、マウスおよびキーボード入力を完全にサポートし、 http://effbot.org/zone/console-index.htm から利用できます。
C++には NCurses ライブラリがあり、リンクされたページには カーソルを移動する のセクションがあると信じています。 NCurses Programming HowTo もあります。
Long昔、私はCでcursesライブラリを非常にうまく使用しました。
更新:
ANSIエスケープシーケンス、特にあなたのような単純なタスクが最も簡単になるため、これを端末/シリアルで実行する部分を逃しました。これに対する@SvenMarnachソリューションに同意します。
for i in range(10):
print("Loading" + "." * i)
doSomeTimeConsumingProcessing()
sys.stdout.write("\033[F") # Cursor up one lin
Pythonでこれを試して、doSomeTimeConsumingProcessing()を必要なルーチンに置き換えてください。
私は間違っているかもしれませんが:
#include <windows.h>
void gotoxy ( int column, int line )
{
COORD coord;
coord.X = column;
coord.Y = line;
SetConsoleCursorPosition(
GetStdHandle( STD_OUTPUT_HANDLE ),
coord
);
}
windows標準コンソール。