我不知道這是爲什麼不工作:麻煩與Python CSV
reader = csv.reader("a,b,c", delimiter=",")
for r in reader:
print r
輸出:
['a']
['', '']
['b']
['', '']
['c']
我試着和無定界符。理想情況下,我希望我的分隔符是;但我不能連得這個簡單的例子來工作...
我不知道這是爲什麼不工作:麻煩與Python CSV
reader = csv.reader("a,b,c", delimiter=",")
for r in reader:
print r
輸出:
['a']
['', '']
['b']
['', '']
['c']
我試着和無定界符。理想情況下,我希望我的分隔符是;但我不能連得這個簡單的例子來工作...
你的csv.reader()
的使用是不是所有的典型。通常,通過一個類似於對象的對象,而不是一個字符串。典型的應用是像這樣:
with open('some_file.csv', 'rb') as input_file:
reader = csv.reader(input_file)
for r in reader:
# do something with "r"
pass
技術上,傳入的參數沒有成爲一個file
。所有它必須是一個可迭代的字符串序列。所以,你的(相當奇怪)的例子可能給,如果你在列表中傳遞您所期望的結果,而不是一個字符串:
import csv
reader = csv.reader(["a,b,c"], delimiter=",")
for r in reader:
print r
結果:
['a', 'b', 'c']
的CSV讀者需要像對象的文件,因此字符串"a,b,c"
寫入等記載here(章13.1.1)的文件:
>>> import csv
>>> with open('eggs.csv', 'rb') as csvfile:
... spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
... for row in spamreader:
... print ', '.join(row)
Spam, Spam, Spam, Spam, Spam, Baked Beans
Spam, Lovely Spam, Wonderful Spam
或使用StringIO。
你應該通過一個文件或類文件對象爲'csv.reader',而不是''a,b,c「'。 – user2357112
你是什麼意思這個例子不工作? 'csv.reader(csvfile,dialect ='excel',** fmtparams)' – haifzhan