Добавление пространства между столбцами

Есть более простой способ, есть таблица ссылок, например:

Таблица 1: клиенты, информация о клиенте, бла-бла-бла

Таблица 2: курсы, информация о курсе, бла-бла

Таблица 3: clientid, courseid

Затем выполните JOIN, и вы отправитесь на гонки.

3
задан Ben 19 March 2019 в 16:01
поделиться

2 ответа

Вот простой подход (не требует RE), который работает для этого конкретного примера. Вам нужно будет сделать это для каждой строки в файле.

>>> '2.459E+08-3.523E+08 4.78E-6-2.344E-06'.replace('-', ' -').replace('E -', 'E-')
>>> '2.459E+08 -3.523E+08 4.78E-6 -2.344E-06'

Объяснение: мы всегда вставляем пробел перед знаком минус, но если знак минус предшествует E, то мы снова удаляем этот пробел.

Эта логика проста для чтения и следования, и она быстрее, чем с использованием регулярного выражения.

0
ответ дан Leonid 19 March 2019 в 16:01
поделиться

Если известно, что источником является файл с фиксированной шириной столбца - почему бы не использовать это:

L = 64     # length of one line
l = 16     # length of one number
with open(filename) as f:
    for line in f:
        print([float(line[i:i+l]) for i in range(0, L, l)])

# [100436070.5, -14.9785924, 20418483.379999999, 2.676474075e+17]

РЕДАКТИРОВАТЬ:
, если вам не нравится это для точного ввода длины строк и чисел, вы можете позволить им рассчитывать из первой строки, например считая десятичные точки:

n = 0
with open(filename) as f:
    for line in f:
        if not n:
            n = sum(c=='.' for c in line)
            L = len(line)
            l = L//n
        print([float(line[i:i+l]) for i in range(0, L, l)])
0
ответ дан SpghttCd 19 March 2019 в 16:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: