2014-12-15 2 views
1

Я очень новичок в Python, и все, что я хочу сделать, это удалить место в некоторых магазинах в таблице. Но из-за ошибки я не могу написать csv. Я уже проверил несколько связанных сообщений в stackoverflow, но все равно не смог исправить свой шнур.Запись csv в Python 3

Ошибка

линия 27, в
csvWriter.writerow (исправлено)
TypeError: 'ул' не поддерживает интерфейс буфера

Код
import csv 

# Read CSV 
csvfile = '/Users/Study/Data/WGI/forPython.csv' 
f = open(csvfile, 'r', newline='') 
data = csv.reader(f) 

# 
g = open('/Users/Study/Data/WGI/WGI_Data_Renamed_Python.csv', 'ab') 
csvWriter = csv.writer(g) 

# 
corrected = [] 

count = 0 

# 
for row in data: 
    corrected.append([])    
    corrected[count] = str.rstrip(row[0]) 
    count = count + 1 

print(corrected) 

# 
csvWriter.writerow(corrected) 
g.close() 

ответ

2

По-видимому, csv.writer в Python 3 doesn't support binary output streams. Это не упоминается в документации, и хуже того, это назад из рекомендации Python 2 всегда открывать базовые файлы с помощью b.

К счастью для вас, исправление легко: просто откройте файл в текстовом режиме вместо двоичного. docs также рекомендуется указывать newline='' при открытии файла, так что вы также можете это сделать.

g = open('/Users/Study/Data/WGI/WGI_Data_Renamed_Python.csv', 'a', newline='') 
csvWriter = csv.writer(g) 
+0

Большое спасибо за сообщение, Генри! Но у меня все еще была такая же ошибка, даже если я изменил указанную вами линию. – user51966

+0

@ user51966 Python 3, похоже, молчал, поддерживая двоичные выходные потоки в сценариях csv. Я бы обновил свой ответ соответственно; взгляните и посмотрите, поможет ли это! –

+0

Теперь это работает! Спасибо!! – user51966

Смежные вопросы