質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

Q&A

1回答

388閲覧

Pythonで終了後に出力される「%」を消したい

Unagiwani

総合スコア6

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

0グッド

0クリップ

投稿2022/09/19 02:24

前提

Pythonで、プログラムの終了後に「%」が出力されます。
これが邪魔なので消したいです。

https://stackoverflow.com/questions/36270945/percent-sign-at-the-end-of-the-output-of-python-script
こちらの回答によると改行を入れればよいとのことですが、プログラムの使用上改行入れたくありません。(タイマーを上書きして表示されるため)

該当のソースコード

ルービックキューブの計測タイマーを作っています。
動作としては、

  1. スペースを長押し
  2. スペースが離されたら計測開始
  3. 再度スペースが押されたら終了

といった流れになっています。

Python

1import keyboard 2import sys 3import time 4 5 6while True: 7 if keyboard.is_pressed('space'):#一度目のスペースキー 8 print("\rReady") 9 while keyboard.is_pressed('space'):#離されるまで繰り返す 10 #スペース入力を消す 11 sys.stdout.write("\033[2K\033[G") 12 sys.stdout.flush() 13 print('\rStart') 14 start_time = time.time() 15 while not keyboard.is_pressed('space'): #二度目のスペースキー 16 stop_time = time.time() 17 result = stop_time - start_time 18 print('\r%.2f' %result, end='')#タイマー表示 19 #<この位置に改行を入れても消えませんでした> 20 break

補足情報

動作環境
MacBook Air m1
Python 3.9.6
zsh

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2022/09/19 02:44

URL先でも指摘されていますが、実行後に表示される「%」はzshのプロンプトなので Python上では制御できないですが、zshでプロンプトを表示しないようにしたいという質問でしょうか。
Unagiwani

2022/09/19 02:57

おっしゃる通りですが、Python上では制御出来ないのは知りませんでした。
guest

回答1

0

Bashと同様の表示にしたければ、.zshrc等にunsetopt prompt_crとプロンプト表示前のCR出力を止めます。

Zsh

1[user@host]/tmp% echo -n aaa 2aaa% ←実際にはリバースの% 3[user@host]/tmp% unsetopt prompt_cr 4[user@host]/tmp% echo -n aaa 5aaa[user@host]/tmp%

投稿2022/09/20 18:50

otn

総合スコア84505

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問