Разделите строку с неизвестным количеством пробелов в качестве разделителя в Python
Мне нужна функция, похожая на string.split(''), но может быть более одного пробела и различного количества их между значимыми символами.
Что-то вроде этого:
s = ' 1234 Q-24 2010-11-29 563 abc a6G47er15 '
ss = s.magicSplit()
print ss
['1234','Q-24','2010-11-29','563','abc','a6G47er15']
Могу ли я каким-то образом использовать регулярные выражения для захвата этих пробелов между ними?
Может кто-нибудь помочь, пожалуйста?
Ответы
Ответ 1
Try
>>> ' 1234 Q-24 2010-11-29 563 abc a6G47er15'.split()
['1234', 'Q-24', '2010-11-29', '563', 'abc', 'a6G47er15']
Или, если вы хотите
>>> class MagicString(str):
... magicSplit = str.split
...
>>> s = MagicString(' 1234 Q-24 2010-11-29 563 abc a6G47er15')
>>> s.magicSplit()
['1234', 'Q-24', '2010-11-29', '563', 'abc', 'a6G47er15']
Ответ 2
s = ' 1234 Q-24 2010-11-29 563 abc a6G47er15 '
ss = s.split()
print ss
['1234','Q-24','2010-11-29','563','abc','a6G47er15']
Ответ 3
Если у вас есть одни пробелы среди ваших данных (например, адрес в одном поле), вот решение для случая, когда разделитель имеет два или более пробелов:
with open("textfile.txt") as f:
content = f.readlines()
for line in content:
# Get all variable-length spaces down to two. Then use two spaces as the delimiter.
while line.replace(" ", " ") != line:
line = line.replace(" ", " ")
# The strip is optional here.
data = line.strip().split(" ")
print(data)
Ответ 4
Чтобы разделить строки на несколько пробелов, сохраняя при этом единичные пробелы в строках:
with open("textfile.txt") as f:
for line in f:
line = [i.strip() for i in line.split(' ') if i]
print(line)