Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで文字列内のタブを複数のスペースに展開・置換する方法

Pythonで文字列内のタブを複数のスペースに展開する方法

Pythonでは、文字列クラスに標準で用意されている replace() メソッドを使うことで、タブ文字(\t)を任意の数のスペースに簡単に置き換えられます。このメソッドは「置き換え対象の文字列」と「置き換え後の文字列」を引数として受け取り、文字列オブジェクトに対して呼び出します。

print('Hello\tWorld\tin\tthis string'.replace('\t', '    '))

出力:

Hello    World    in    this string

上記の例では、各タブ文字が半角スペース4つに置き換えられています。必要に応じて、スペースの数を自由に変更できます。

expandtabs() メソッドを使う方法

実は、Pythonにはタブをスペースへ展開するための専用メソッド expandtabs() も用意されています。デフォルトではタブ幅が8文字として扱われますが、引数で任意のタブ幅を指定することも可能です。expandtabs() は単純な置換ではなく、タブストップ(桁位置)に合わせてスペースを補うため、テキストの整列に便利です。

print('Hello\tWorld'.expandtabs(8))   # デフォルトのタブ幅は8
print('Hello\tWorld'.expandtabs(4)) # タブ幅を4に指定

出力:

Hello   World
Hello World

reモジュール(正規表現)を使う方法

正規表現を扱いたい場合は、標準ライブラリの re モジュールも利用できます。re.sub(置換対象のパターン, 置換後の文字列, 対象文字列) の形式で呼び出すことで、文字列内のタブをまとめて置換できます。

import re
print(re.sub('\t', ' ', 'Hello\tWorld\tin\tthis string'))

出力:

Hello    World    in    this string

使い分けのポイント

  • replace():シンプルにタブを決まった数のスペースへ置き換えたい場合に最適です。
  • expandtabs():桁を揃えて整形したい場合に便利な、タブ展開専用のメソッドです。
  • re.sub():タブと連続した空白など、より複雑なパターンを一括処理したい場合に有効です。

用途に応じてこれらの方法を使い分けることで、文字列内のタブ処理を柔軟かつ効率的に行えます。

  1. Pythonで文字列内のすべての出現箇所を別の文字列に置換する方法

    str.replace()メソッドを使う方法Pythonの文字列クラス(str)には、replaceメソッドが標準で用意されています。このメソッドは「置換したい文字列」と「置換後の文字列」を引数として受け取り、文字列オブジェクトに対して呼び出すことで、該当するすべての出現箇所を一括して置き換えることができます。たとえば、次のように呼び出すと、文字列中のすべての「no」が「yes」に置き換えられます。>>> no one knows how.replace(no, yes) yes one kyesws how >>> chihuahua.replace(hu

  2. 【Python入門】文字列が空白(スペース・タブ・改行)のみかどうかを判定する2つの方法

    Pythonでは、文字列が「空」——つまりスペース、タブ、改行などの空白文字のみで構成されているかどうかを簡単にチェックできます。主な方法は以下の2つです。 文字列メソッド isspace() を使う方法 re モジュールの正規表現を使う方法 それぞれの使い方を詳しく見ていきましょう。 方法1:isspace() メソッドを使う str 型が持つ isspace() メソッドは、文字列が空白文字だけで構成されていて、かつ1文字以上ある場合に True を返します。通常の文字が1つでも含まれていれば False となります。 サンプルコード print(Hello world.isspace