Используйте openpyxl для загрузки записей файлов данных фиксированной ширины
Пытаюсь прочитать файл фиксированного формата, разбить на записи и загрузить в лист excel. Невозможно обрезать пробелы с концов каждого элемента массива. Проблема в том, что:
с WS.присоединить([строка[я:ж].rstrip('\р\н') для i,j в izip_longest(начало, конец)]) #&ЛТ;&ЛТ;&ЛТ;&ЛТ;&ЛТ;&ЛТ;
Примечание: данные не загружаются в лист excel, если строка печати не закомментирована.
FixedWidth.дат
1C4PJLAB1FW506827 SMT701PD57J348217 1GTEG15X541150523 3GYFNCE39CS56512 1GCGK24N9PE171689 K U G7FU046394G 1FTEF25NXKNA45683 1G2PF37R8FP298952 JC2UA2127B059 944 5D JH2PC4080AK380263 1FT7W2BT7FEC79068
Что я уже пробовал:
from __future__ import print_function from itertools import tee, izip_longest import openpyxl def main(): def fixed_reader(df, data_start, data_end, indices, ws): # https://stackoverflow.com/a/10851582/4539999 # uses from itertools import tee, izip_longest with open(df, 'rb') as f: # read to start for line in range(0, data_start): next(f) # for line in f: for index, line in enumerate(f): if index == data_end: break start, end = tee(indices) next(end) print([line[i:j].rstrip('\r\n') for i,j in izip_longest(start, end)]) # <<<<< ws.append([line[i:j].rstrip('\r\n') for i,j in izip_longest(start, end)]) # <<<<< wb = openpyxl.Workbook() ws = wb.active ws['A4'] = "" # Error - want to start here but starts next row fixed_reader('FixedWidth.dat', 3, 7, [0,1,6,8], ws) wb.save('Summary.xlsx') if __name__ == '__main__': main()
Patrice T
"Проблема в:"
Какая проблема ?
Member 13788610
Улучшенный вопрос - не знаю, как обрезать элементы массива.
Richard MacCutchan
Первое, что вам нужно сделать, это выяснить, что именно возвращается из вашего звонка в izip_longest
.