我目前正在做一個練習,構建一個python CSV解析器。我需要能夠打開一個CSV文件並讀取內容,逐個字符地遍歷CSV。我的python代碼設置爲遍歷字符串,但是我遇到了通過CSV執行此操作的錯誤。通過csv逐字符遍歷
Read方法:
import csv
def parse(csv):
#states
is_token = False
previous_character_is_escape = False
no_quote_value = False
csv_file = open(csv, 'r')
iterator = (csv.reader(csv_file))
for i in iterator:
if is_token == False:
if i == '"':
print '\b' + i,
is_token = True
no_quote_value = False
elif i == ',':
print '\n',
elif no_quote_value == True:
print '\b' + i,
is_token = True
else:
print '\b' + i,
elif is_token == True:
if i == '\\':
print '\b' + i,
previous_character_is_escape = True
elif previous_character_is_escape == True and i == '"':
print '\b' + i,
previous_character_is_escape = False
elif previous_character_is_escape == False and i == '"':
print '\b' + i,
is_token = False
no_quote_value = True
elif no_quote_value == True and i == ',':
print '\n',
is_token = False
elif no_quote_value == False and i == ',':
print '\b' + i,
else:
print '\b' + i,
parse('example.csv')
當我執行此我得到以下錯誤:
Traceback (most recent call last):
File "main_test.py", line 47, in <module>
parse('example.csv')
File "main_test.py", line 10, in parse
iterator = (csv.reader(csv_file))
AttributeError: 'str' object has no attribute 'reader'
有什麼辦法由字符打開一個CSV文件並讀取內容字符?
嗯,你不能只是打開它作爲一個普通的文本文件?如果你想逐字讀字符,你不應該關心csv模塊 – cedbeu
你的變量叫'csv'與模塊名'csv'衝突。改變它不同的東西。 –
這就是錯誤的原因,但是@cedbeu說,如果你想自己解析它,你不應該使用'csv'。 –