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

110

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

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

f.write(re.split("Tech ID:|Name:|Account #:",line)[-1])
fpena06
источник
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
Джошуа Холл
источник