2016-03-21 23 views
0

私はPythonでタイトルを印刷しています。 は私がPythonでの文字列の書式設定

"{:^50}".format("Title") 

を使用することによってそれを行うことができます知っている。しかし、このコマンドを使用して、事はそれだけで私は(この場合は50)で与える幅を利用しています。しかし、それは完璧ではないし、時には邪魔になることもあります。私が観測/推測することによって幅を近似しても、端末のサイズを変更すると、フォーマットが外れることになります。私はいつも端末のサイズが変更されても(たとえば、全画面モードで)画面の中央に配置したいと思っています。私はこれを達成する方法は何ですか?

EDIT: 私はこれをしなかったしている: まあ、私は、ウィンドウのサイズを見つける方法を考え出し

import os 
columns = os.popen('stty size', 'r').read().split()[0] 
"{:^"+columns+"}".format("Title") 

が、最後の行がエラーを示しています。私は最終的にウィンドウサイズを持っていますが、正しくフォーマットすることはできません。どんな助けもありがとう!

+0

あなたがそれを行うフォーマットされた文字列を取得することができます方法はありません。 'curses'モジュールを見ることはできますが、それは正確ではありません。 – L3viathan

+0

ウィンドウがサイズ変更されたときにテキストを移動する唯一の方法は、移動させることです。つまり、画面を消去して再印刷するか、 'curses'を使用します。 – zondo

+0

ああ、私は推測する簡単な方法はありません:P – Krishh

答えて

1

zondoが指摘しているように、ウィンドウのサイズを変更すると、タイトルの位置が変更されません。

これを行うための正しい方法:"{:^"+columns+"}".format("Title")はそうのようなものです:

"{:^{}}".format("Title", width) 
#^---------------^ first argument goes with first brace 
# ^--------------------^ second argument goes with second brace and sets the width 
+0

これは動作します!私はその人以外の人の組み合わせを試しました。どうもありがとう!! – Krishh

関連する問題