다음 코드를 사용하여 일부 CSV 파일로 작업하고 있습니다.
reader = csv.reader(open(filepath, "rU"))
try:
for row in reader:
print 'Row read successfully!', row
except csv.Error, e:
sys.exit('file %s, line %d: %s' % (filename, reader.line_num, e))
그리고 하나의 파일에서이 오류가 발생합니다.
file my.csv, line 1: line contains NULL byte
어떡해? Google은 .csv로 부적절하게 저장된 Excel 파일 일 수 있다고 제안하는 것 같습니다. 파이썬에서이 문제를 해결할 수있는 방법이 있습니까?
== 업데이트 ==
아래 @JohnMachin의 의견에 따라 다음 줄을 스크립트에 추가해 보았습니다.
print repr(open(filepath, 'rb').read(200)) # dump 1st 200 bytes of file
data = open(filepath, 'rb').read()
print data.find('\x00')
print data.count('\x00')
그리고 이것은 내가 얻은 출력입니다.
'\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1\x00\x00\x00\x00\x00\x00\x00\x00\ .... <snip>
8
13834
따라서 파일에는 실제로 NUL 바이트가 포함되어 있습니다.
od -c
처럼 첫 번째 줄의 모양을 말한다?