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