web-dev-qa-db-ja.com

Pythonでスペースで文字列を固定長に埋め込む方法は?

これは多くの場所でカバーされていると確信していますが、実行しようとしているアクションの正確な名前がわからないので、実際に調べることはできません。公式のPython本を30分間読んで、これを行う方法を探しています。

問題:文字列を特定の長さの「フィールド」に入れる必要があります。

たとえば、名前フィールドの長さが15文字で、私の名前がJohnの場合、「John」の後に11個のスペースが続き、15文字のフィールドが作成されます。

変数 "name"に入力された文字列に対して機能するためにこれが必要です。

何らかの形式のフォーマットになる可能性が高いことは知っていますが、これを行う正確な方法は見つかりません。ヘルプをいただければ幸いです。

41
user2977230

これはformatを使用すると非常に簡単です。

>>> a = "John"
>>> "{:<15}".format(a)
'John           '
82
Games Brainiac

ljustメソッドを文字列で使用 を使用できます。

>>> name = 'John'
>>> name.ljust(15)
'John           '

名前が15文字より長い場合、ljustは切り捨てられないことに注意してください。最終的に正確に15文字にしたい場合は、結果の文字列をスライスできます。

>>> name.ljust(15)[:15]
58
Ismail Badawi
string = ""
name = raw_input() #The value at the field
length = input() #the length of the field
string += name
string += " "*(length-len(name)) # Add extra spaces

これにより、フィールドの長さが指定された名前の長さ以上であれば、必要な数のスペースが追加されます

1
Aswin Murugesh

最初に文字列の長さを短くする必要があるかどうかを確認してから、フィールドの長さと同じ長さになるまでスペースを追加します。

fieldLength = 15
string1 = string1[0:15] # If it needs to be shortened, shorten it
while len(string1) < fieldLength:
    Rand += " "
1
Matt

私の問題のためにこれをホイップしました。stringの長さが指定したmin_lengthより大きくなるまでスペースを追加します。

def format_string(str, min_length):
    while len(str) < min_length:
        str += " "
    return str
1
dragon40226
name = "John" // your variable
result = (name+"               ")[:15] # this adds 15 spaces to the "name"
                                       # but cuts it at 15 characters
1
user2629998