Python ファイル処理 読み込み・書き込み スクリプトの書き方

バイオインフォ道場、くまぞうです。

Pythonでファイル処理を行う場合の、読み込み・書き込みについて簡単な操作を確認します。

スポンサーリンク



Python ファイル処理 ファイルオブジェクト

Pythonでファイル処理を行う場合は、open関数の戻り値として得られたファイルオブジェクトに対して操作を行います。ファイルを開くときに、モードで読み込み(”r”)・書き込み(”w”)を指定します。読み込みはreadlines関数、書き込みはwrite関数などを使います。1行ずつ読み書きしたり、複数行を一度に処理したり、用途に応じて使い分けます。ファイル操作が終わったら、close関数でファイルを閉じます。

ファイル読み込み

ファイル名を指定してファイルをopenします。読み取りのモード(r)を指定します。readlines()で1行ずつの読み込み、line変数に内容を格納します。1行分(読み込み単位)のデータに対して処理を行います。最後にcloseします。

  f = open(file_name, "r")
  for line in f.readlines():
      print line.strip()  # 内容表示 など

  f.close()

ファイル書き込み

ファイル名を指定してファイルをopenします。書き込みのモード(w)を指定します(追記モードはa)。writeで1行ずつ書き込みます。最後にcloseします。

  f = open(file_name, "w")
  f.write("hello world!")

  f.close()

サンプル

ファイル処理を使った、Pythonのスクリプト例です。fastaファイルを読みこんでヘッダー情報だけを連結しながら取得します。最後に>を目印にして分割し、別のファイルに書き込みます。

file_test.py

  file_name  = "my.fasta"
  all_header = ""

  f = open(file_name, "r")  # 読み込み
  for line in f.readlines():
      if line[0] == '>':
          all_header += line.strip()

  f.close()

  print all_header
  all_header = filter(lambda x: x!='', all_header.split('>'))
  print all_header
  print

  f = open(file_name+".write", "w")  # 書き込み
  for x in all_header:
      f.write(x+"\n")

  f.close()

my.fasta

  >cds1
  ATGGTGGGTGGCAAGAAGAAAACCAAGATATGTGACAAAGTGTCACATGA
  TTTGGCAATCGGTTCCTGGATTGGACTTAGACCCCTACGCATCCTCAAAT
  GAAATGTTGCCAACGCTTCTTGAGAGCTGCCCAAAACTTGAATCTCTCAT
  >cds2
  ATGGTTCAATATAATTTCAAGAGGATCACAGTTGTTCCCAATGGGAAGGA
  GCACGTCGTGGTGAAGCTGACAGAGTTATACCAACGCTTAGACCGAAACA
  AACCGACAGGCGTTGA
  >cds3
  ATGACTCGTTTGTTGCCTTACAAAGGTGGAGATTTTTTGGGACCGGATTT
  CCGAGGTATACCTCTACCTTATCTTTCTGAATTAACTGTGAGCTTCATAG
  GCAAAAATTAAGATTGGTGAATGCTCAAAACGTAAAAAGGATAAGCAAGT
  >cds4
  ATGGATTCAGAGTCAGAGTCAAAGCTCATATCATTCATTTCTCAATTAGT
  ATCATGCATGATACAAACAATCTCTCTGGTCAGCTCAATGGATTTGAAGT
  ATCTATTTCGGTAACTTCTTCTCATGTATGCAATGTGATTATATTCTCCA
  >cds5
  ATGTCGGTTCCTCCTAGATTCCGGTCCGTAAATTCCGATGAGCGAGAGTT
  GCTGCAGAGGAAACCACCGGGGATGAAACTGGAGAAGCCGATGATGGAGA
  GAGAGAGAGTGATAAATAA

実行と結果

  $ ls
  my.fasta
  file_test.py

  $ python file_test.py 
  >cds1>cds2>cds3>cds4>cds5
  ['cds1', 'cds2', 'cds3', 'cds4', 'cds5']

  $ cat my.fasta.write
  cds1
  cds2
  cds3
  cds4
  cds5

[amazonjs asin=”4797353953″ locale=”JP” title=”みんなのPython 改訂版”]

スポンサーリンク





ピックアップ記事

  1. awk if サンプルでわかる条件文の書き方 一致・大小比較・正規表現を簡潔に書く方法

    awkのif条件文は、条件によって処理をわけたいときに使います。条件式では、0の判定・関係演算子・…
  2. R subset関数 データフレームやmatrixからの条件指定による行・列の抽出

    R の subset関数は、データフレームやマトリックスから条件にマッチした部分集合を取り出します…
  3. R 使い方 グラフの色 自作のカラーパレットとデフォルトのカラーパレット

    グラフを描画する際、色の組み合わせを1つ1つ考えるのは面倒ですよね。Rには、あらかじめ色の組み合わ…

人気記事

  1. Excel, その他, 統計

    z-score 計算方法 エクセル(Excel) 編
    統計処理で、大きく変化しているなどの判断基準にも使われる値…
  2. R データ型 - 文字列・ベクター・データフレーム・マトリックス など-, R言語, スクリプト

    R subset関数 データフレームやmatrixからの条件指定による行・列の抽出
    R の subset関数は、データフレームやマトリックスか…
  3. IGV, 解析ツール

    IGV 使い方 インストール〜便利な使い方まで | リファレンス・マッピングデータ・アノテーションを読み込んで表示しよう
    IGV(Integrative Genomics View…

おすすめ記事

  1. awk, bash 文字列操作, シェルスクリプト

    bash 部分文字列・置換・長さ・連結・分割の文字列処理
    bashのよく使う文字列処理、部分文字列・置換・連結・長さ…
  2. R言語, グラフ

    R 使い方 軸・ラベルの調整(向き・サイズ・色など) グラフの描き方
    Rによるplot(グラフ)の描画は、手軽で大変便利です。た…
  3. bash 応用, シェルスクリプト

    シェル スクリプト ファイル存在チェック・空のファイルチェック
    bashでスクリプトを作成するときに、よく使うのがファイル…