Есть ли в Python функция для распознавания переменных ширины? - PullRequest
0 голосов
/ 21 апреля 2019

Я пытаюсь объединить много текстовых файлов в один CSV-файл, но на данный момент мне трудно загрузить даже один текстовый файл.Основная причина в том, что у каждого столбца есть переменный интервал, поэтому нет разделителя табуляции и запятой.Мой текстовый файл с данными выглядит следующим образом, за исключением тысяч записей.Я использовал AM для обозначения имен столбцов, которые имеют переменную длину, и описал тип данных под ним:

A        B      C        D       E      F      G     H   I   J    K  L   M

S10     i8      i8      i8      S10    S2     i8    i8  i8  i8   i8  S1 f8

Интервал между столбцами - вот где моя проблема.Я пробовал следующее:

file='example.txt'
col_locations = np.array([1, 34, 41, 52, 75, 79, 88, 99, 104, 109, 116, 121, 126])
col_locations = col_locations - 1

widths = col_locations[1:] - col_locations[:-1]
widths = np.insert(widths, 0, 1)
datatype =[('A', 'S10'), ('B', 'i8'), ('C', 'i8'), ('D', 'S10'), ('E', 'S2'), ('F', 'i8'), ('G', 'i8'), ('H', 'i8'), ('I', 'i8'), ('J', 'i8'), ('K', 'i8'), ('L', 'S1'), ('M', 'f8')]
data  = np.genfromtxt(file, skip_header = 10, delimiter = widths, autostrip = False, dtype = datatype)

Там, где расположение столбцов было выбрано редактором, что неэффективно, поскольку некоторые текстовые файлы могут иметь немного другое расположение столбцов.Я не получаю сообщение об ошибке, но когда я печатаю (данные), он явно загружается неправильно.Даже если бы это было так, я не был бы счастлив с этим методом.Любой совет будет очень признателен.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...