二重引用符の間のカンマを無視し、二重引用符の間にないカンマを削除する方法は?
質問する
1018 次
2 に答える
3
電池が含まれています - Python に付属のcsv
モジュールを使用するだけです。
例:
import csv
if __name__ == '__main__':
file_path = r"/your/file/path/here.csv"
file_handle = open(file_path, "r")
csv_handle = csv.reader(file_handle)
# Now you can work with the *values* in the csv file.
于 2012-05-12T02:35:45.103 に答える
1
念のために言うと、(ほとんどの場合)正規表現を使用してこれを行うことができます。
mystr = 'No quotes,"Quotes",1.0,42,"String, with, quotes",1,2,3,"",,""'
import re
csv_field_regex = re.compile("""
(?:^|,) # Lookbehind for start-of-string, or comma
(
"[^"]*" # If string is quoted: match everything up to next quote
|
[^,]* # If string is unquoted: match everything up to the next comma
)
(?=$|,) # Lookahead for end-of-string or comma
""", re.VERBOSE)
m = csv_field_regex.findall(mystr)
>>> pprint.pprint(m)
['No quotes',
'"Quotes"',
'1.0',
'42',
'"String, with, quotes"',
'1',
'2',
'3',
'""',
'',
'""']
これは、引用符で囲まれた文字列内に表示されるエスケープされた引用符を除くすべてを処理します。このケースを処理することも可能ですが、正規表現は厄介になります。これがcsv
モジュールがある理由です。
于 2012-05-12T05:34:11.003 に答える