いろんな種類のファイルを読み込む

python

テキストデータを処理しようとするといろんな種類を扱うことがあるので、関数化してみました

def file_open(fname):
    is fname == none
        t = sys.stdin
    elif re.search(r’.gz’, fname) != none:
        t = gzip.open(fname, ‘rt’)
    else:
        t = open(fbame, ‘rt’)

    l = [l.strip(“\n”) for l in t]
    if fname != none: t.close()

    return l

これで、通常ファイル、gzip、標準入力の3種類に対応できます

標準入力ファイル名を指定しない
gzipファイル名が指定され、.gzで終わる
通常ファイルファイル名が指定され、.gzで終わらない

使うときは下記のように、一旦リストに格納して、for文で1行ずつ処理していく

lines = file_open(f)
for line in lines:
    <処理>
タイトルとURLをコピーしました