Cara menggunakan STRIP pada Python

string python

deskripsi

Metode Python Strip [] digunakan untuk menghapus kepala dan ekor string karakter yang ditentukan [default adalah spasi].

tatabahasa

Strip [] sintaks metode:

str.strip[[chars]];

parameter

  • chars - menghapus kepala dan ekor dari karakter string yang ditentukan.

Kembali Nilai

Menghapus kepala dan ekor tali Mengembalikan string baru generasi karakter yang ditentukan.

contoh

Contoh berikut menunjukkan strip [] berfungsi untuk menggunakan:

#!/usr/bin/python

str = "0000000this is string example....wow!!!0000000";
print str.strip[ '0' ];

Contoh hasil output di atas adalah sebagai berikut:

this is string example....wow!!!

string python

Sambil belajar tentang python, saya menemukan kode ini, yang mengambil file teks, membagi setiap baris menjadi array, dan menyisipkannya ke dalam kamus khusus, di mana array [0] adalah kunci dan array [1] adalah nilainya:

my_dict = {}

infile = open["file.txt"]
for line in infile:
    #line = line.strip[] 
    #parts = [p.strip[] for p in line.split["\t"]]
    parts = [p for p in line.split["\t"]]
    my_dict[parts[0]] = parts[1]
    print line

for key in my_dict:
    print "key: " + key + "\t" + "value " + my_dict[key]

Saya menjalankan program dengan baris komentar berulang kali dan saya mendapat hasil yang sama. [tentu saja mengganti baris komentar kedua dengan baris di bawahnya]. Sepertinya saya yang melakukan strip [] adalah opsional. Apakah lebih baik meninggalkannya?

Jika Anda dapat mengomentari kode dan program Anda masih berfungsi, maka ya, kode itu opsional.

.strip[] tanpa argumen [atau None sebagai argumen pertama] menghapus semua spasi putih di awal dan akhir, termasuk spasi, tab, baris baru, dan pengembalian carriage. Membiarkannya tidak membahayakan, dan memungkinkan program Anda menangani spasi kosong tambahan yang tak terduga yang dimasukkan ke dalam file.

Misalnya, dengan menggunakan .strip[], dua baris berikut dalam file akan menghasilkan hasil akhir yang sama:

 foo\tbar \n
foo\tbar\n

Saya akan mengatakan biarkan.

Dalam hal ini, Anda mungkin mendapatkan beberapa perbedaan. Pertimbangkan garis seperti:

"foo\tbar "

Dalam hal ini, jika Anda strip, maka Anda akan mendapatkan {"foo":"bar"} sebagai entri kamus. Jika Anda tidak menelanjangi, Anda akan mendapatkan {"foo":"bar "} [perhatikan ruang ekstra di akhir]

Perhatikan bahwa jika Anda menggunakan line.split[] alih-alih line.split['\t'], Anda akan membagi setiap karakter spasi dan "striping" akan dilakukan selama pemisahan secara otomatis. Dengan kata lain:

line.strip[].split[]

is selal identik dengan:

line.split[]

tapi:

line.strip[].split[delimiter]

Tidak harus sama dengan:

line.split[delimiter]

strip tidak melakukan apa-apa selain itu, menghapus spasi putih di string Anda. Jika Anda ingin menghapus whitepace tambahan dari depan dan belakang string Anda, Anda dapat menggunakan strip.

Contoh string yang dapat menggambarkan hal ini adalah ini:

In [2]: x = "something \t like     \t this"
In [4]: x.split['\t']
Out[4]: ['something ', ' like     ', ' this']

Lihat, bahkan setelah pemisahan dengan \t ada spasi putih tambahan di item pertama dan kedua yang dapat dihapus menggunakan strip dalam kode Anda.

strip menghapus spasi putih dari awal dan akhir string. Jika Anda ingin spasi putih, jangan panggil strip.

Tidak, itu praktik yang lebih baik untuk tidak melakukannya.

Tanpa strip [], Anda dapat memiliki kunci dan nilai kosong:

applesround, fruity things
orangesround, fruity things
bananas

Tanpa strip [], pisang ada di kamus tetapi dengan string kosong sebagai nilai. Dengan strip [], kode ini akan memunculkan eksepsi karena mengupas tab dari garis pisang.

Saya mencoba untuk menghapus semua spasi/tab/baris baru di python 2.7 di Linux.

Saya menulis ini, yang seharusnya melakukan pekerjaan: 

myString="I want to Remove all white \t spaces, new lines \n and tabs \t"
myString = myString.strip[' \n\t']
print myString

keluaran:

I want to Remove all white   spaces, new lines 
 and tabs

Sepertinya hal yang sederhana untuk dilakukan, namun saya kehilangan sesuatu di sini. Haruskah saya mengimpor sesuatu?

Gunakan str.split[[sep[, maxsplit]]] tanpa sep atau sep=None:

Dari docs :

Jika sep tidak ditentukan atau None, algoritma pemisahan yang berbeda adalah diterapkan: menjalankan spasi kosong berturut-turut dianggap sebagai tunggal pemisah, dan hasilnya tidak akan berisi string kosong di awal atau diakhiri jika string memiliki spasi spasi awal atau akhir.

Demo:

>>> myString.split[]
['I', 'want', 'to', 'Remove', 'all', 'white', 'spaces,', 'new', 'lines', 'and', 'tabs']

Gunakan str.join pada daftar yang dikembalikan untuk mendapatkan hasil ini:

>>> ' '.join[myString.split[]]
'I want to Remove all white spaces, new lines and tabs'

Jika Anda ingin menghapus banyak item spasi putih dan menggantinya dengan spasi tunggal, cara termudah adalah dengan regexp seperti ini:

>>> import re
>>> myString="I want to Remove all white \t spaces, new lines \n and tabs \t"
>>> re.sub['\s+',' ',myString]
'I want to Remove all white spaces, new lines and tabs '

Anda kemudian dapat menghapus spasi tambahan dengan .strip[] jika Anda mau.

import re

mystr = "I want to Remove all white \t spaces, new lines \n and tabs \t"
print re.sub[r"\W", "", mystr]

Output : IwanttoRemoveallwhitespacesnewlinesandtabs

Gunakan perpustakaan re

import re
myString = "I want to Remove all white \t spaces, new lines \n and tabs \t"
myString = re.sub[r"[\n\t\s]*", "", myString]
print myString

Output:

Saya ingin menghapus semua ruang putih, baris baru dan tab

Ini hanya akan menghapus tab, baris baru, spasi dan tidak ada yang lain.

import re
myString = "I want to Remove all white \t spaces, new lines \n and tabs \t"
output   = re.sub[r"[\n\t\s]*", "", myString]

OUTPUT: 

Sayamenghapus semua tempat, baris baru dan tab

Selamat siang!

Karena tidak ada hal lain yang lebih rumit, saya ingin membagikan ini karena ini membantu saya.

Inilah yang awalnya saya gunakan:

import requests
import re

url = '//stackoverflow.com/questions/10711116/strip-spaces-tabs-newlines-python' # noqa
headers = {'user-agent': 'my-app/0.0.1'}
r = requests.get[url, headers=headers]
print["{}".format[r.content]]

Hasil yang Tidak Diinginkan:

b'\r\n\r\n\r\n    \r\n\r\n    \r\n\r\n        string - Strip spaces/tabs/newlines - python - Stack Overflow\r\n        

Bài mới nhất

Chủ Đề