Baştaki ve sondaki boşluklar kaldırılsın mı?


110

Aşağıdaki kod satırıyla .strip'i kullanmaya çalışırken zorlanıyorum.

Yardım için teşekkürler.

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

3
Çizgi nedir? Bir örnek harika olur ya da biz sadece tahmin ediyoruz.
jamylak

f.write (str (re.split ("Tech ID: | Ad: | Hesap #:", satır) [- 1]). strip)
fpena06

1
Az önce gönderdiğiniz
koddan

Daha sonra işlev çağrısı parantezlerini kaçırdınız strip. Sen istiyorum: f.write(str(re.split("Tech ID:|Name:|Account #:",line)[-1]).strip()).
Li-aung Yip

1
Neden normal ifadenize beyaz boşluklar re.split(r"\s*(?:Tech ID:|Name:|Account #:)\s*
eklemiyorsunuz

Yanıtlar:


236

Sondaki ve öndeki boşlukları kaldırmak için şeridi () kullanabilirsiniz.

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

Not: iç boşluklar korunur


31
Hedefiniz buysa s.strip () çıktısını s'ye geri atamayı unutmayın: s = s.strip ()
Seanonymous

@GregSchmit Biri bunu nasıl özleyebilir? 78 beğeni ve kimse fark etmedi mi? Garip.
MYGz

@MYGz Evet, bir şeyleri kaçırmış olabileceğimi düşünerek kendimi bile sorguluyordum.
Greg Schmit

2
@GregSchmit Görünüşe göre 89294 göz taramış. 1 keskin
çiftiniz

Açıkçası, yanlış bir şey yapıyorum, ama bunun ne olduğunu bilmiyorum. Bir dizede strip () çalıştırdığımda, bir dizge değil dizge listesi alırım.
user1928764

5

Bir astarınızı birden çok hatta genişletin. O zaman kolaylaşır:

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()Yöntemin dizeden herhangi bir baştaki ve sondaki boşluk karakterlerini kırpacağına dikkat edilmelidir (iletilen bağımsız değişken yoksa). Diğerlerini (satırsonu gibi) tutarken boşluk karakter (ler) ini kırpmak istiyorsanız, bu cevap yardımcı olabilir:

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

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

strip([chars]): strip([chars])Yönteme isteğe bağlı karakterler girebilirsiniz . Python, bu karakterlerin oluşumlarını arayacak ve verilen dizeyi buna göre kesecektir.


0

Başlangıç ​​dosyası:

     line 1
   line 2
line 3  
      line 4 

Kod:

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

Çıktı:

line 1
line 2
line 3
line 4
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.