Как добавить разрыв строки после числа?

#python

#python

Вопрос:

У меня ограниченные знания Python, поэтому у меня много проблем с исправлением этого.

После извлечения текста из файла pdf и небольшой очистки я получил следующий результат:

"BARRINE QLD 4872ARCHDALE VIC 3475ARCHDALE JUNCTION VIC 3475ARCHER NT 0830ARCHER RIVER QLD 4892" (Это небольшая выборка из гораздо большего результата!)

Есть ли способ добавить разрыв строки после чисел? Итак, вместо приведенной выше строки у меня было бы что-то похожее на это:

 'BARRINE  QLD 4872',  
'ARCHDALE  VIC 3475'
 

Я пробовал читать разные статьи об этом, но, возможно, из-за недостатка знаний я просто не могу в этом разобраться!

Ответ №1:

Это не самое элегантное решение, но что-то вроде этого может сработать:

 string = "BARRINE  QLD 4872ARCHDALE  VIC 3475ARCHDALE JUNCTION  VIC 3475ARCHER  NT 0830ARCHER RIVER  QLD 4892"

def split_at_numbers(string):
    char_at = 0
    temp_str = ""
    out = []
    while char_at < len(string):
        temp_str  = string[char_at]
        try:
            if string[char_at].isnumeric() and not string[char_at   1].isnumeric():
                out.append(temp_str)
                temp_str = ""
        except IndexError:
            out.append(temp_str)
        char_at  = 1
    return out

print(split_at_numbers(string))

# output: ['BARRINE  QLD 4872', 'ARCHDALE  VIC 3475', 'ARCHDALE JUNCTION  VIC 3475', 'ARCHER  NT 0830', 'ARCHER RIVER  QLD 4892']
 

Приведенный выше цикл перебирает каждый символ и проверяет, является ли символ одним) числом и двумя), за которым не следует число. Если эти два условия верны, тогда мы прерываем этот раздел и переходим к следующему разделу этой строки. Мы сохраняем каждый из этих разделов в список, который мы возвращаем в конце.

Оттуда с данными должно быть легко работать.