파이썬에서 문자열을 75 자로 자르는 방법은 무엇입니까?
이것이 JavaScript에서 수행되는 방법입니다.
var data="saddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddsaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddsadddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
var info = (data.length > 75) ? data.substring[0,75] + '..' : data;
답변
info = (data[:75] + '..') if len(data) > 75 else data
답변
더 짧은 :
info = data[:75] + (data[75:] and '..')
답변
더 간결한 :
data = data[:75]
75 자 미만이면 변경되지 않습니다.
답변
Python 3.4+를 사용 textwrap.shorten
하는 경우 표준 라이브러리에서 사용할 수 있습니다 .
주어진 너비에 맞게 주어진 텍스트를 축소하고 자릅니다.
먼저 텍스트의 공백이 축소됩니다 (모든 공백이 단일 공백으로 바)). 결과가 너비에 맞는 경우 반환됩니다. 그렇지 않으면 나머지 단어와 자리 표시자가 너비에 맞도록 끝에서 충분한 단어가 삭제됩니다.
>>> textwrap.shorten("Hello world!", width=12) 'Hello world!' >>> textwrap.shorten("Hello world!", width=11) 'Hello [...]' >>> textwrap.shorten("Hello world", width=10, placeholder="...") 'Hello...'
답변
Django 솔루션 (문제에 언급되지 않은) :
from django.utils.text import Truncator
value = Truncator(value).chars(75)
https://github.com/django/django/blob/master/django/utils/text.py#L66 : 문제를 이해하기 위해 Truncator의 소스 코드를 살펴보십시오.
Django를 사용한 잘림 관련 :
Django HTML 잘림
답변
이 하나의 라이너를 사용할 수 있습니다.
data = (data[:75] + '..') if len(data) > 75 else data
답변
정규식으로 :
re.sub(r'^(.{75}).*$', '\g<1>...', data)
긴 문자열이 잘립니다.
>>> data="11111111112222222222333333333344444444445555555555666666666677777777778888888888"
>>> re.sub(r'^(.{75}).*$', '\g<1>...', data)
'111111111122222222223333333333444444444455555555556666666666777777777788888...'
더 짧은 문자열은 절대로 잘리지 않습니다.
>>> data="11111111112222222222333333"
>>> re.sub(r'^(.{75}).*$', '\g<1>...', data)
'11111111112222222222333333'
이런 식으로 문자열의 중간 부분을 “잘라낼”수도 있습니다.
re.sub(r'^(.{5}).*(.{5})$', '\g<1>...\g<2>', data)
>>> data="11111111112222222222333333333344444444445555555555666666666677777777778888888888"
>>> re.sub(r'^(.{5}).*(.{5})$', '\g<1>...\g<2>', data)
'11111...88888'