Remover espaços à esquerda e à direita?


110

Estou tendo dificuldade em tentar usar .strip com a seguinte linha de código.

Obrigado pela ajuda.

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

3
O que é linha? Um exemplo seria ótimo ou estamos apenas adivinhando.
Jamylak

f.write (str (re.split ("ID técnico: | Nome: | Nº da conta:", linha) [- 1]). strip)
fpena06

1
Pelo código que você acabou de postar, parece que você esqueceu o parêntese após a tira
Jamylak

Você perdeu os parênteses da chamada de função depois strip. Você quer: f.write(str(re.split("Tech ID:|Name:|Account #:",line)[-1]).strip()).
Li-aung Yip

1
Por que você simplesmente não adiciona espaços em branco à sua expressão regular: re.split(r"\s*(?:Tech ID:|Name:|Account #:)\s*etc.
georg

Respostas:


236

Você pode usar a faixa () para remover espaços à direita e à esquerda.

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

Nota: os espaços internos são preservados


31
Não se esqueça de atribuir a saída de s.strip () de volta a s se esse for seu objetivo: s = s.strip ()
Seanonymous

@GregSchmit Como alguém poderia perder isso? 78 curtidas e ninguém percebeu? Estranho.
MYGz

@MYGz Sim, eu estava até me questionando, pensando que poderia ter perdido alguma coisa.
Greg Schmit

2
@GregSchmit Aparentemente, 89294 olhos o escanearam. Você tem 1 par afiado: P
MYGz

Obviamente, estou fazendo algo errado, mas não sei o que é. Quando executo strip () em uma string, obtenho uma lista de strings, não uma string.
user1928764

5

Expanda seu forro em várias linhas. Então fica fácil:

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

Deve-se observar que o strip()método cortaria quaisquer caracteres de espaço em branco à esquerda e à direita da string (se não houver nenhum argumento passado). Se você quiser cortar o (s) caractere (s) de espaço, enquanto mantém os outros (como nova linha), esta resposta pode ser útil:

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

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

strip([chars]): Você pode passar caracteres opcionais para o strip([chars])método. Python irá procurar por ocorrências desses caracteres e cortar a string fornecida de acordo.


0

Arquivo inicial:

     line 1
   line 2
line 3  
      line 4 

Código:

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

Resultado:

line 1
line 2
line 3
line 4
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.