[英]parsing csv string in python
假設我有這樣的字符串
ab, "cd
ef", gh, "ijk, lm"
還有這個
a,b,c
d,e,f
我想用 python csv 模塊解析它們。 我該怎么做? 第二個假設它是兩行,但第一個不是。
我認為它們需要加載到csv.reader()
中,所以首先想到我需要用逗號分隔它們,所以使用.split(',')
但它在第二個字符串上會有問題,因為它'會忽略換行符,我也想到了.splitline()
但在這種情況下它會弄亂第一個字符串..
一整天都在努力解決這個問題,但我沒有主意……有什么幫助嗎?
您遇到的問題是您在 之后有一個空格,
因此在第一個示例中您的實際分隔符是', '
。
幸運的是,您不是第一個遇到此問題的人。 使用csv.skipinitialspace設置為True
來解決。
鑒於:
$ cat file1.csv
ab, "cd
ef", gh, "ijk, lm"
和:
$ cat file2.csv
a,b,c
d,e,f
你可以做:
with open('file1.csv', 'r') as f:
for row in csv.reader(f, quotechar='"',skipinitialspace=True):
print(f"len: {len(row)}, row: {row}")
印刷:
len: 4, row: ['ab', 'cd\nef', 'gh', 'ijk, lm']
同樣的方言適用於第二個例子,它有一個 true ,
沒有尾隨空格的分隔符:
with open('file2.csv', 'r') as f:
for row in csv.reader(f, quotechar='"',skipinitialspace=True):
print(f"len: {len(row)}, row: {row}")
印刷:
len: 3, row: ['a', 'b', 'c']
len: 3, row: ['d', 'e', 'f']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.