У меня есть файл фиксированной длины, например: 0001ABC,DEF1234
Определение файла:
id[1:4]
name[5:11]
phone[12:15]
Мне нужно загрузить эти данные в таблицу.Я попытался использовать модуль CSV и определил фиксированную длину каждого поля.Работает нормально, кроме поля имени.Для поля ИМЯ загружается только значение до ABC.Причина в том, что, поскольку я использую модуль CSV, он обрабатывает 0001ABC как значение и только до этого разбирает.
Я пытался использовать escapechar = ',' при чтении файла, но он удаляет ''из данных.Я также попытался процитировать = csv.QUOTE_ALL, но это тоже не сработало.
with open("xyz.csv") as csvfile:
readCSV = csv.reader(csvfile)
writeCSV = open("sample_csv", 'w');
output = csv.writer(writeCSV, dialect='excel', lineterminator="\n")
for row in readCSV:
print(row) # to debug #
data= str(row[0])
print(data) # to debug #
id = data[0:4]
name = data[5:11]
phone = data[12:15]
output.writerow([id,name,phone])
writeCSV.close()
Вывод команд печати:
row: ['0001ABC','DEF1234']
data: 0001ABC
В идеале, яожидайте увидеть весь набор 0001ABC,DEF1234
в переменной: data
.Затем я могу использовать синтаксический анализ, как упомянуто в коде, чтобы разбить его на разные поля.
Не могли бы вы сообщить мне, где я иду не так?