Rimuovere gli spazi iniziali e finali?


110

Sto avendo difficoltà a provare a utilizzare .strip con la seguente riga di codice.

Grazie per l'aiuto.

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

3
Cos'è la linea? Un esempio sarebbe fantastico o stiamo solo supponendo.
jamylak

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

1
Dal codice che hai appena pubblicato sembra che tu abbia dimenticato la parantesi dopo la striscia
jamylak

Hai perso le parentesi di chiamata di funzione dopo strip. Si desidera: f.write(str(re.split("Tech ID:|Name:|Account #:",line)[-1]).strip()).
Li-aung Yip

1
Perché non aggiungi semplicemente spazi bianchi alla tua espressione regolare: re.split(r"\s*(?:Tech ID:|Name:|Account #:)\s*ecc.
georg

Risposte:


236

È possibile utilizzare la striscia () per rimuovere gli spazi finali e iniziali.

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

Nota: gli spazi interni sono conservati


31
Non dimenticare di assegnare l'output di s.strip () a s se questo è il tuo obiettivo: s = s.strip ()
Seanonymous

@GregSchmit Come potrebbe qualcuno mancare? 78 Mi piace e nessuno l'ha notato? Strano.
MYGz

@ MYGz Sì, mi stavo anche interrogando, pensando che avrei potuto perdere qualcosa.
Greg Schmit

2
@GregSchmit Apparentemente 89294 occhi lo hanno scannerizzato. Hai 1 coppia tagliente: P
MYGz

Chiaramente sto facendo qualcosa di sbagliato, ma non so cosa sia. Quando eseguo strip () su una stringa, ottengo un elenco di stringhe, non una stringa.
user1928764

5

Espandi la tua linea in più linee. Allora diventa facile:

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

Va notato che il strip()metodo taglia tutti i caratteri di spazio bianco iniziale e finale dalla stringa (se non ci sono argomenti passati). Se vuoi tagliare i caratteri dello spazio, mantenendo gli altri (come la nuova riga), questa risposta potrebbe essere utile:

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

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

strip([chars]): È possibile passare caratteri opzionali al strip([chars])metodo. Python cercherà le occorrenze di questi caratteri e taglierà la stringa data di conseguenza.


0

File di partenza:

     line 1
   line 2
line 3  
      line 4 

Codice:

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

Produzione:

line 1
line 2
line 3
line 4
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.