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])
fpena06
sumber
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

Anshuma
sumber
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)
Li-aung Yip
sumber
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.

indeks_balik
sumber
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
Joshua Hall
sumber