バイオインフォマティクスは、膨大な生物学データを扱う分野であり、その解析にはプログラミングスキルが欠かせません。Pythonは、その使いやすさと豊富なライブラリにより、多くの研究者に選ばれています。この記事では、Python3を用いた”フォルダーのファイル情報”について、基本から応用まで解説します。
基本: Pythonでフォルダー配下のファイル情報を取得する方法
Pythonには、フォルダー内のファイルやディレクトリの情報を簡単に取得できる標準ライブラリが用意されています。以下に基本的な方法を紹介します。
1. osモジュールを使った方法
os
モジュールは、ファイルやディレクトリ操作のための基本的な機能を提供します。
サンプルコード:
import os
# 対象のフォルダーを指定
folder_path = "path/to/your/folder"
# フォルダー内のファイル一覧を取得
for root, dirs, files in os.walk(folder_path):
print(f"現在のディレクトリ: {root}")
print(f"サブディレクトリ: {dirs}")
print(f"ファイル: {files}")
実行結果例:
現在のディレクトリ: path/to/your/folder
サブディレクトリ: ['subdir1', 'subdir2']
ファイル: ['file1.txt', 'file2.txt']
このコードでは、os.walk
を使ってフォルダー配下のすべてのサブフォルダーとファイルを再帰的に取得しています。これはフォルダー構造全体を把握したい場合に便利です。
2. pathlibモジュールを使った方法
pathlib
は、Python 3.4以降で導入されたモジュールで、オブジェクト指向のアプローチを提供します。
サンプルコード:
from pathlib import Path
# 対象のフォルダーを指定
folder_path = Path("path/to/your/folder")
# フォルダー内のファイル一覧を取得
for file in folder_path.rglob("*"):
print(file)
実行結果例:
path/to/your/folder/file1.txt
path/to/your/folder/subdir1/file2.txt
rglob
メソッドは、指定したパターンに一致するすべてのファイルとディレクトリを再帰的に取得します。
応用: バイオインフォマティクスのワークフローにおける活用例
バイオインフォマティクスでは、ファイル情報の取得はデータ管理や解析の効率化に直結します。以下にいくつかの応用例を紹介します。
1. 特定のファイルタイプをフィルタリング
次世代シーケンス(NGS)のデータ解析では、FASTAやFASTQなど特定の形式のファイルを扱うことが一般的です。以下は、特定の拡張子を持つファイルのみを取得する例です。
サンプルコード:
from pathlib import Path
# 対象のフォルダーを指定
folder_path = Path("path/to/your/folder")
# .fastqファイルのみ取得
for file in folder_path.rglob("*.fastq"):
print(file)
これにより、フォルダー配下のすべてのFASTQファイルを効率よくリストアップできます。
2. ファイルサイズや作成日時の取得
解析時には、ファイルサイズや作成日時を基にデータをフィルタリングすることが必要になる場合があります。
サンプルコード:
import os
from pathlib import Path
# 対象のフォルダーを指定
folder_path = Path("path/to/your/folder")
# 各ファイルのサイズと作成日時を取得
for file in folder_path.rglob("*"):
if file.is_file():
size = os.path.getsize(file)
creation_time = os.path.getctime(file)
print(f"ファイル: {file}, サイズ: {size} bytes, 作成日時: {creation_time}")
3. メタデータの一括取得と保存
大量のゲノムデータや配列データを扱う場合、ファイル情報をまとめて記録しておくと便利です。
サンプルコード:
import csv
from pathlib import Path
# 対象のフォルダーを指定
folder_path = Path("path/to/your/folder")
output_file = "file_metadata.csv"
# メタデータをCSVに書き込む
with open(output_file, mode="w", newline="") as csvfile:
writer = csv.writer(csvfile)
writer.writerow(["ファイル名", "パス", "サイズ (bytes)", "作成日時"])
for file in folder_path.rglob("*"):
if file.is_file():
size = file.stat().st_size
creation_time = file.stat().st_ctime
writer.writerow([file.name, str(file), size, creation_time])
print(f"メタデータが{output_file}に保存されました。")
このコードは、ファイル情報をCSV形式で保存し、後から簡単に参照できるようにします。
まとめ
Pythonを使用してフォルダー配下のファイル情報を取得する方法は、バイオインフォマティクスにおけるデータ管理や解析において強力なツールとなります。os
やpathlib
を活用すれば、基本的な情報取得から高度なフィルタリング、メタデータの管理まで対応可能です。この記事で紹介した方法を参考に、効率的なデータ解析ワークフローを構築してみてください。