2017-02-12 10 views
1

私はcsvファイルをPythonで解析しようとしています。各行には4つの要素がカンマで区切られています。要素は文字列ですが、カンマも含めることができます。要素にコンマが含まれる場合、その要素は二重引用符で囲まれます。次の例は、引用符でとすることなく、2つの異なる例を示します。条件付き分割文字列

http://data.europa.eu/esco/skill/CTC_43028,"use data extraction, transformation and loading tools","ETL|extract, transform, load","<div>Integrate information from multiple applications, created and maintained by various organisations, into one consistent and transparent data structure.</div>" 
http://data.europa.eu/esco/skill/SCG.TS.1.4.m.2,support company plan,follow industry guidelines|follow organisation's vision|monitor policy implementation|support company mission,<div>Act within one&#39;s work role to advance the goals and vision of the organisation.</div> 

私が欲しい四つの要素にそれぞれの行を分割することです。 私はPythonの分割機能を試しましたが、成功しませんでした。私は正規表現を使わなければならないと思うが、私はそれに精通していない。 いくつかの助けてもらえますか? 多くのありがとうございます。

import csv 

with open('file.csv') as f: 
    r = csv.reader(f) 
    for row in r: 
     print row 

['http...', 'transformation ...', 'ETL|ext ...', '<div>Integrate ...'] 
['http:...', 'support ...', 'follow ...', '<div>Act ...'] 

','は、デフォルトの区切り文字と'"'デフォルトquotecharです:

+5

'csv'モジュールはどうですか?それはそのために作られたテーラーです。正規表現を削除してください... –

答えて

2

csvモジュールは、あなたが望むものです。

+0

しかし、それぞれの部分は引用符で囲まれており、単一のqout内に文字列を入れる必要があります。正規表現をもう一度? – lenhhoxung

+2

いいえ、引用されていません。一重引用符は 'list'の' str() 'が表示するために使う文字列の' repr() '表現の一部です。個々の行の文字列を個別に印刷する場合は、引用符は表示されません。 – schwobaseggl