ファイル

ファイルを取り扱うとき、ファイルの名前と文字コードを同時に指定することが推奨される。ファイルを開くとき、open をそのまま利用しても良いが、より安全な方法として with 文とともに用いる。with 文を用いることで、プログラムがファイルの読み込み中に異常終了しても、ファイルが自動的に正しく閉じられる。

ファイルの読み込み

次は、PDB ファイル(1ALK.pdb)を読み込み、3 文字のアミノ酸コードを抽出する例である。アミノ酸コードは SEQRES 行にかかれているため、if 文を利用して SEQRES 行を探して、データを取得する。

aa = ''  #アミノコードを保存するための変数


with open('1ALK.pdb', mode = 'r', encoding = 'utf-8') as fh:
  # ファイルを一行ずつ処理
  for buff in fh:
    # PDB ファイルの SEQRES コードよりアミノ酸配列を取得
    if buff[0:6] == 'SEQRES':
      buff = buff.rstrip()
      aa += buff[19:]


aa = aa.replace(' ', '')
print(aa)

ファイルの書き出し

ファイルを作成する場合は、ファイルを書き込みモード w あるいは追加書き込みモード a で開く。書き込みモードで開くとき、ファイルが既に存在している場合はその内容が破棄される。追加書き込みモードでは、既存のファイルの下側に、内容を追加する。

次は、名前が new.fa となるファイルを作成する。

# 書き込み
with open('new.fa', mode = 'w', encoding = 'utf-8') as fh:
  fh.write('>NEW SEQ A\n')
  fh.write('ACGATTTTATGCTGATCGTAGCTGTAGTCTAGCTGTCTGTC\n')


# 追加書き込み
with open('new.fa', mode = 'a', encoding = 'utf-8') as fh:
  fh.write('>NEW SEQ B\n')
  fh.write('GATCGTAGCTGTAGTCTAGCTGTCTGTGGCATTATTTTGTA\n')