Удалить начальные и конечные пробелы?


110

Мне трудно использовать .strip со следующей строкой кода.

Спасибо за помощь.

f.write(re.split("Tech ID:|Name:|Account #:",line)[-1])

3
Что такое линия? Пример был бы отличным, или мы просто догадываемся.
джамылак 04

f.write (str (re.split ("Tech ID: | Name: | Account #:", line) [- 1]). strip)
fpena06

1
Из кода, который вы только что опубликовали, похоже, что вы забыли парантез после стрипа
jamylak

Вы пропустили скобки после вызова функции strip. Вы хотите: f.write(str(re.split("Tech ID:|Name:|Account #:",line)[-1]).strip()).
Ли-он Ип

1
Почему бы вам просто не добавить пробелы в свое регулярное выражение: re.split(r"\s*(?:Tech ID:|Name:|Account #:)\s*и т. Д.
georg

Ответы:


236

Вы можете использовать полоску () для удаления конечных и ведущих пробелов.

>>> s = '   abd cde   '
>>> s.strip()
'abd cde'

Примечание: внутренние пространства сохранены


31
Не забудьте назначить вывод s.strip () обратно s, если это ваша цель: s = s.strip ()
Seanonymous

@GregSchmit Как можно это пропустить? 78 лайков и никто не заметил? Странный.
MYGz

@MYGz Да, я даже сам себя расспрашивал, думая, что мог что-то пропустить.
Грег Шмит

2
@GregSchmit Очевидно, 89294 глаза просмотрели его. У вас есть 1 острая пара: P
MYGz

Ясно, что я делаю что-то не так, но не знаю, что это такое. Когда я запускаю strip () для строки, я получаю список строк, а не строку.
user1928764

5

Разверните один вкладыш на несколько строк. Тогда становится легко:

f.write(re.split("Tech ID:|Name:|Account #:",line)[-1])

parts = re.split("Tech ID:|Name:|Account #:",line)
wanted_part = parts[-1]
wanted_part_stripped = wanted_part.strip()
f.write(wanted_part_stripped)

3

Следует отметить, что strip()метод будет вырезать любые начальные и конечные пробельные символы из строки (если нет переданного аргумента). Если вы хотите обрезать символы пробела, сохранив остальные (например, новую строку), этот ответ может быть полезным:

sample = '  some string\n'
sample_modified = sample.strip(' ')

print(sample_modified)  # will print 'some string\n'

strip([chars]): Вы можете передать в strip([chars])метод необязательные символы . Python будет искать вхождения этих символов и соответственно обрезать данную строку.


0

Начальный файл:

     line 1
   line 2
line 3  
      line 4 

Код:

with open("filename.txt", "r") as f:
    lines = f.readlines()
    for line in lines:
        stripped = line.strip()
        print(stripped)

Вывод:

line 1
line 2
line 3
line 4
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.