Видалити провідні та кінцеві пробіли?


109

Мені важко намагатися використовувати .strip із наступним рядком коду.

Дякую за допомогу.

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

3
Що таке лінія? Приклад був би чудовим, або ми просто здогадуємось.
jamylak

f.write (str (re.split ("Технічний ідентифікатор: | Назва: | Рахунок №:", рядок) [- 1]). смуга)
fpena06

1
З коду, який ви тільки що опублікували, схоже, що ви забули
парантез

Ви пропустили круглі дужки функціонування після strip. Ви хочете: f.write(str(re.split("Tech ID:|Name:|Account #:",line)[-1]).strip()).
Li-aung Yip

1
Чому б ви просто не додали пробіли до звичайного виразу: re.split(r"\s*(?:Tech ID:|Name:|Account #:)\s*тощо
georg

Відповіді:


235

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

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

Примітка: внутрішні простори збережені


31
Не забудьте призначити вихід s.strip () назад до s, якщо це ваша мета: s = s.strip ()
Сеансонім

@GregSchmit Як ​​міг хтось пропустити це? 78 лайків і ніхто не помітив? Дивно.
MYGz

@MYGz Так, я навіть допитувався, думаючи, що, можливо, я щось пропустив.
Грег Шміт

2
@GregSchmit Мабуть, 89294 очі відсканували це. У вас 1 гостра пара: P
MYGz

Ясна річ, я роблю щось не так, але не знаю, що це. Коли я запускаю strip () на рядку, я отримую назад список рядків, а не рядок.
користувач1928764

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.