PythonでCSVファイルを読み込む際、カンマが含まれるテキストに対応する方法について説明します。
CSVファイルの読み込み
PythonでCSVファイルを読み込む際、csv_line.split(',')
のようにしてデータの取り込みを行うと、カンマが含まれるテキストに対応できません。例えば、’1,2,3,3,4’というテキストがあったら、[‘1’, ‘2’, ‘3,3’, ‘4’]のように分割したい場合があります。
解決策
正規表現を使用する方法
正規表現を使用して、カンマをエスケープする方法があります。以下にそのコードを示します。
import re
s = '1,2,3\\,3,4'
re.split(r"(?<!\\),", s)
このコードは、バックスラッシュでエスケープされていないカンマで文字列を分割します。
csvモジュールを使用する方法
また、Pythonのcsvモジュールを使用すると、エスケープ処理を自動的に行ってくれます。以下にそのコードを示します。
import csv
with open("hoge.csv", "r") as f:
for row in csv.reader(f):
print(row)
このコードは、CSVファイルを読み込み、各行をリストとして出力します。この方法では、エスケープも不要です。
以上がPythonでCSVファイルを読み込む際のカンマエスケープについての説明です。これらの方法を試してみてください。