Hapus spasi di depan dan di belakang?


110

Saya mengalami kesulitan mencoba menggunakan .strip dengan baris kode berikut.

Terima kasih untuk bantuannya.

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

3
Apa itu garis? Contoh akan sangat bagus atau kita hanya menebak-nebak.
jamylak

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

1
Dari kode yang baru saja Anda posting sepertinya Anda lupa paranthesis setelah strip
jamylak

Anda melewatkan tanda kurung panggilan fungsi setelahnya strip. Anda ingin: f.write(str(re.split("Tech ID:|Name:|Account #:",line)[-1]).strip()).
Li-aung Yip

1
Mengapa Anda tidak menambahkan spasi saja ke ekspresi reguler Anda: re.split(r"\s*(?:Tech ID:|Name:|Account #:)\s*dll.
georg

Jawaban:


236

Anda dapat menggunakan strip () untuk menghilangkan spasi di belakang dan di depan.

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

Catatan: ruang internal dipertahankan


31
Jangan lupa untuk menetapkan output s.strip () kembali ke s jika itu tujuan Anda: s = s.strip ()
Seanonymous

@GregSchmit Bagaimana orang bisa melewatkan itu? 78 suka dan tidak ada yang memperhatikan? Aneh.
MYGz

@MYGz Ya, saya bahkan mempertanyakan diri saya sendiri, berpikir bahwa saya mungkin telah melewatkan sesuatu.
Greg Schmit

2
@GregSmit Rupanya 89294 mata memindai itu. Anda mendapatkan 1 pasangan tajam: P
MYGz

Jelas, saya melakukan sesuatu yang salah, tetapi saya tidak tahu apa itu. Ketika saya menjalankan strip () pada string, saya mendapatkan kembali daftar string, bukan string.
pengguna1928764

5

Perluas satu liner Anda menjadi beberapa baris. Maka itu menjadi mudah:

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

Perlu dicatat bahwa strip()metode akan memangkas karakter spasi kosong di depan dan di belakang dari string (jika tidak ada argumen yang diteruskan). Jika Anda ingin memangkas karakter spasi, sementara yang lain tetap (seperti baris baru), jawaban ini mungkin berguna:

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

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

strip([chars]): Anda dapat mengirimkan karakter opsional ke strip([chars])metode. Python akan mencari kemunculan karakter-karakter ini dan memangkas string yang diberikan.


0

Memulai file:

     line 1
   line 2
line 3  
      line 4 

Kode:

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

Keluaran:

line 1
line 2
line 3
line 4
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.