Python 各行の全ての空白をつめる方法。stripでなくてsplitメソッド

#'20/03/20更新:コードが見づらかったので更新しました。
 本記事ではsplitメソッドの「文字列を分割してリスト化する」のを利用して、全ての空白をつめる方法です。本プログラムの仕様は、下図左のような文字列間に空白があるテキストファイルを下図右のようにつめます。

f:id:HK29:20190511151442p:plain

参考までに、stripメソッドでは文字列の両端の空白(改行コードも含む)は削除しますが、文字列間の空白は削除することをしません(できません)。

▼本プログラム

# -*- coding: utf-8 -*-
import os, sys

def main():
    with open(input_path, "r") as f1:
        for row in f1:
            buf=[]
            buf = row.split()
            with open(output_path, "a") as f2:
                for i in buf: # bufはリスト化されてるためループで回す
                    f2.write(i)
                f2.write('\n')

if __name__ == '__main__':
    path = os.getcwd()
    input_file = "gegege.txt"
    input_path = os.path.join(path, input_file)
    
    new_file_name = 'new.txt'
    output_path = os.path.join(path, new_file_name)
    
    main()
    print("finished")

ちなみに、「指定した」空白箇所を削除したい場合はreplaceメソッドを利用すると良いです。下記リンク参照。

hk29.hatenablog.jp

以上