Python:在字符串的开头保留空格

时间:2017-08-03 13:28:50

标签: python string

我有一个看起来像这样的字符串:

old_string = '      Some_text'

我想写一个新的字符串,但我想在开头保持相同的空格。 Python中是否有一种方法可以保留这个空白区域? 空白区域可能包含空格或制表符,但制表符或空格的确切数量未知。 我认为这可以使用正则表达式来完成,但我不确定是否有办法。由于字符串中的文字并不总是相同,我无法使用

new_string = old_string.replace('Some_text','new_text')

任何想法都会受到欢迎。

3 个答案:

答案 0 :(得分:0)

计算使用lstrip;

时删除的字符数
str = '      Some_text'
whitespace = len(str) - len(str.lstrip())
print(whitespace)

输出;

6

答案 1 :(得分:0)

你可以这样做:

new_string = old_string[:-len(old_string.lstrip())] + 'new text'

或者如果您更喜欢str.format

new_string = '{}new text'.format(old_string[:-len(old_string.lstrip())])

答案 2 :(得分:0)

您可以使用itertools.takewhile()获取前导空白字符:

>>> from itertools import takewhile
>>> old_string = '      Some_text'
>>> whitespace = list(takewhile(str.isspace, old_string))
>>> "".join(whitespace)
'      ' 
>>> len(whitespace) 
6 

要获取字符串的其余部分,您可以使用itertools.dropwhile()

>>> "".join(dropwhile(str.isspace, old_string))      
'Some_text'