Wrapping, truncating, lan format strings ing Python nganggo textwrap

Bisnis

Kanggo format senar ing Python dening mbungkus (line breaking) lan truncating (singkatan) ing nomer kasepakatan karakter, nggunakake modul textwrap perpustakaan standar.

Informasi ing ngisor iki kasedhiya ing kene.

  • Bungkus senar (line feed):wrap(),fill()
  • String truncate (diilangi):shorten()
  • Objek TextWrapper

Yen sampeyan pengin nulis senar dawa ing pirang-pirang baris ing kode tinimbang ing output, deleng artikel ing ngisor iki.

Bungkus senar (line feed):wrap(),fill()

Kanthi fungsi Lebokake () modul textwrap, sampeyan bisa njaluk dhaftar dibagi dening break tembung kanggo pas menyang nomer kasepakatan karakter.

Nemtokake jumlah karakter kanggo jembar argumen kapindho. Default punika jembaré = 70.

import textwrap

s = "Python can be easy to pick up whether you're a first time programmer or you're experienced with other languages"

s_wrap_list = textwrap.wrap(s, 40)
print(s_wrap_list)
# ['Python can be easy to pick up whether', "you're a first time programmer or you're", 'experienced with other languages']

Nggunakake dhaptar sing dipikolehi, sampeyan bisa entuk senar sing rusak dening kode baris anyar kanthi nindakake ing ngisor iki
\n'.join(list)

print('\n'.join(s_wrap_list))
# Python can be easy to pick up whether
# you're a first time programmer or you're
# experienced with other languages

Isi fungsi () ngasilake string baris anyar tinimbang dhaptar. Iku padha karo nglakokake kode ing ngisor iki sawise bungkus () kaya ing conto ing ndhuwur.
\n'.join(list)

Iki luwih trep yen sampeyan ora butuh dhaptar nanging pengin ngasilake string sing ambane tetep menyang terminal, lsp.

print(textwrap.fill(s, 40))
# Python can be easy to pick up whether
# you're a first time programmer or you're
# experienced with other languages

Yen argumen max_line ditemtokake, jumlah baris sawise bakal diilangi.

print(textwrap.wrap(s, 40, max_lines=2))
# ['Python can be easy to pick up whether', "you're a first time programmer or [...]"]

print(textwrap.fill(s, 40, max_lines=2))
# Python can be easy to pick up whether
# you're a first time programmer or [...]

Yen diilangi, string ing ngisor iki bakal metu ing mburi minangka standar.
[...]'

Bisa diganti dening sembarang string karo placeholder argumen.

print(textwrap.fill(s, 40, max_lines=2, placeholder=' ~'))
# Python can be easy to pick up whether
# you're a first time programmer or ~

Sampeyan uga bisa nemtokake string sing bakal ditambahake ing wiwitan baris pisanan kanthi argumen initial_indent. Iki bisa digunakake yen sampeyan pengin indent awal paragraf.

print(textwrap.fill(s, 40, max_lines=2, placeholder=' ~', initial_indent='  '))
#   Python can be easy to pick up whether
# you're a first time programmer or ~

Ati-ati karo karakter ukuran lengkap lan setengah ukuran.

Ing textwrap, jumlah karakter dikontrol kanthi jumlah karakter, dudu kanthi jembar karakter, lan karakter siji-byte lan ganda-byte dianggep minangka siji karakter.

s = '文字文字文字文字文字文字12345,67890, 文字文字文字abcde'

print(textwrap.fill(s, 12))
# 文字文字文字文字文字文字
# 12345,67890,
# 文字文字文字abcde

Yen sampeyan pengin mbungkus teks kanthi karakter kanji campuran kanthi jembar tetep, mangga deleng ing ngisor iki.

String truncate (diilangi):shorten()

Yen sampeyan pengin truncate lan ngilangi strings, nggunakake fungsi shorten () ing modul textwrap.

Disingkat dadi unit tembung supaya pas karo jumlah karakter sing kasepakatan. Jumlah karakter, kalebu senar sing nuduhake omission, iku sembarang. String sing nuduhake omission bisa disetel karo placeholder argumen, sing dadi standar ing ngisor iki.
[...]'

s = 'Python is powerful'

print(textwrap.shorten(s, 12))
# Python [...]

print(textwrap.shorten(s, 12, placeholder=' ~'))
# Python is ~

Nanging, senar Jepang, contone, ora bisa dicekak kanthi apik amarga ora bisa dipérang dadi tembung.

s = 'Pythonについて。Pythonは汎用のプログラミング言語である。'

print(textwrap.shorten(s, 20))
# [...]

Yen sampeyan pengin dicekak kanthi mung nimbang jumlah karakter tinimbang unit tembung, bisa gampang digayuh kaya ing ngisor iki.

s_short = s[:12] + '...'
print(s_short)
# Pythonについて。P...

Objek TextWrapper

Yen sampeyan arep kanggo Lebokake () utawa isi () kaping pirang-pirang karo konfigurasi tetep, iku efisien kanggo nggawe obyek TextWrapper.

wrapper = textwrap.TextWrapper(width=30, max_lines=3, placeholder=' ~', initial_indent='  ')

s = "Python can be easy to pick up whether you're a first time programmer or you're experienced with other languages"

print(wrapper.wrap(s))
# ['  Python can be easy to pick', "up whether you're a first time", "programmer or you're ~"]

print(wrapper.fill(s))
#   Python can be easy to pick
# up whether you're a first time
# programmer or you're ~

Setelan sing padha bisa digunakake maneh.