Я вижу пару проблем с вашим кодом.Во-первых, вы используете сигнатуру функции open
с os.open
, но она имеет разные параметры.Вы можете придерживаться open
.Что еще более важно, вы, кажется, пытаетесь исправить строку, выходящую из csv.reader
, снова разделив ее на вкладки.
Полагаю, вы видели всю строку в row[0]
, поэтому попытались это исправить.Но проблема в том, что ридер по умолчанию разделяется на запятые - вам нужно указать другой разделитель.Здесь это немного проблематично, потому что ваш код разделен вкладкой, но в примере показаны пробелы.Я использовал пробелы в своем решении, но вы можете переключать его по мере необходимости.
Наконец, вы попытались закодировать строки перед передачей их объекту выходного файла.Этот объект должен быть открыт с правильной кодировкой, и вы должны просто дать ему строки.
# coding=utf-8
import csv
with open('jamid.csv', 'r', newline='', encoding='utf-8') as in_fp:
with open('col.txt','w', newline='', encoding='utf-8') as out_fp:
csv.writer(out_fp).writerows(row[3] for row in
csv.reader(in_fp, delimiter=' ', skipinitialspace=True)
if len(row) >= 3)