Hướng dẫn python textwrap dedent - python textwrap abent

Mã nguồn: lib/textwrap.py Lib/textwrap.py


Mô -đun textwrap cung cấp một số hàm tiện lợi, cũng như

>>> textwrap.shorten("Hello  world!", width=12)
'Hello world!'
>>> textwrap.shorten("Hello  world!", width=11)
'Hello [...]'
>>> textwrap.shorten("Hello world", width=10, placeholder="...")
'Hello...'
0, lớp thực hiện tất cả các công việc. Nếu bạn chỉ gói hoặc điền một hoặc hai chuỗi văn bản, các chức năng tiện lợi phải đủ tốt; Nếu không, bạn nên sử dụng một thể hiện
>>> textwrap.shorten("Hello  world!", width=12)
'Hello world!'
>>> textwrap.shorten("Hello  world!", width=11)
'Hello [...]'
>>> textwrap.shorten("Hello world", width=10, placeholder="...")
'Hello...'
0 cho hiệu quả.

________ 12 ________ 13 (Text, Width = 70, *, init_indent = '', sau đó_indent = '', expand_tabs = true, thay thế_whitespace = true Không, người giữ chỗ = '[...]')(text, width=70, *, initial_indent='', subsequent_indent='', expand_tabs=True, replace_whitespace=True, fix_sentence_endings=False, break_long_words=True, drop_whitespace=True, break_on_hyphens=True, tabsize=8, max_lines=None, placeholder=' [...]')

Kết thúc đoạn văn duy nhất trong văn bản (một chuỗi) để mọi dòng có độ rộng nhiều nhất. Trả về một danh sách các dòng đầu ra, không có dòng mới cuối cùng.

Đối số từ khóa tùy chọn tương ứng với các thuộc tính thể hiện của

>>> textwrap.shorten("Hello  world!", width=12)
'Hello world!'
>>> textwrap.shorten("Hello  world!", width=11)
'Hello [...]'
>>> textwrap.shorten("Hello world", width=10, placeholder="...")
'Hello...'
0, được ghi lại bên dưới.

Xem phương thức

>>> textwrap.shorten("Hello  world!", width=12)
'Hello world!'
>>> textwrap.shorten("Hello  world!", width=11)
'Hello [...]'
>>> textwrap.shorten("Hello world", width=10, placeholder="...")
'Hello...'
5 để biết thêm chi tiết về cách hành xử
>>> textwrap.shorten("Hello  world!", width=12)
'Hello world!'
>>> textwrap.shorten("Hello  world!", width=11)
'Hello [...]'
>>> textwrap.shorten("Hello world", width=10, placeholder="...")
'Hello...'
6.

________ 12 ________ 18 (văn bản, width = 70, *, initing_indent = '', sau đó_indent = '', expand_tabs = true, thay thế_whitespace = true Không, người giữ chỗ = '[...]')(text, width=70, *, initial_indent='', subsequent_indent='', expand_tabs=True, replace_whitespace=True, fix_sentence_endings=False, break_long_words=True, drop_whitespace=True, break_on_hyphens=True, tabsize=8, max_lines=None, placeholder=' [...]')

Kết thúc đoạn văn đơn trong văn bản và trả về một chuỗi duy nhất chứa đoạn văn được bọc.

>>> textwrap.shorten("Hello  world!", width=12)
'Hello world!'
>>> textwrap.shorten("Hello  world!", width=11)
'Hello [...]'
>>> textwrap.shorten("Hello world", width=10, placeholder="...")
'Hello...'
9 là tốc ký cho

"\n".join(wrap(text, ...))

Cụ thể,

>>> textwrap.shorten("Hello  world!", width=12)
'Hello world!'
>>> textwrap.shorten("Hello  world!", width=11)
'Hello [...]'
>>> textwrap.shorten("Hello world", width=10, placeholder="...")
'Hello...'
9 chấp nhận chính xác các đối số từ khóa giống như
>>> textwrap.shorten("Hello  world!", width=12)
'Hello world!'
>>> textwrap.shorten("Hello  world!", width=11)
'Hello [...]'
>>> textwrap.shorten("Hello world", width=10, placeholder="...")
'Hello...'
6.

________ 12 ________ 23 (văn bản, chiều rộng, *, fix_sentence_endings = false, break_long_words = true, break_on_hyphens = true(text, width, *, fix_sentence_endings=False, break_long_words=True, break_on_hyphens=True, placeholder=' [...]')

Sụp đổ và cắt ngắn văn bản đã cho để phù hợp với chiều rộng đã cho.

Đầu tiên, khoảng trắng trong văn bản bị thu gọn (tất cả khoảng trắng được thay thế bằng không gian đơn). Nếu kết quả phù hợp với chiều rộng, nó được trả về. Mặt khác, đủ các từ được bỏ từ cuối để các từ còn lại cộng với

def test():
    # end first line with \ to avoid the empty line!
    s = '''\
    hello
      world
    '''
    print(repr(s))          # prints '    hello\n      world\n    '
    print(repr(dedent(s)))  # prints 'hello\n  world\n'
4 phù hợp trong
def test():
    # end first line with \ to avoid the empty line!
    s = '''\
    hello
      world
    '''
    print(repr(s))          # prints '    hello\n      world\n    '
    print(repr(dedent(s)))  # prints 'hello\n  world\n'
5:

>>> textwrap.shorten("Hello  world!", width=12)
'Hello world!'
>>> textwrap.shorten("Hello  world!", width=11)
'Hello [...]'
>>> textwrap.shorten("Hello world", width=10, placeholder="...")
'Hello...'

Đối số từ khóa tùy chọn tương ứng với các thuộc tính thể hiện của

>>> textwrap.shorten("Hello  world!", width=12)
'Hello world!'
>>> textwrap.shorten("Hello  world!", width=11)
'Hello [...]'
>>> textwrap.shorten("Hello world", width=10, placeholder="...")
'Hello...'
0, được ghi lại bên dưới. Lưu ý rằng khoảng trắng bị sụp đổ trước khi văn bản được chuyển đến hàm ____10
>>> textwrap.shorten("Hello  world!", width=12)
'Hello world!'
>>> textwrap.shorten("Hello  world!", width=11)
'Hello [...]'
>>> textwrap.shorten("Hello world", width=10, placeholder="...")
'Hello...'
9, do đó, việc thay đổi giá trị của
def test():
    # end first line with \ to avoid the empty line!
    s = '''\
    hello
      world
    '''
    print(repr(s))          # prints '    hello\n      world\n    '
    print(repr(dedent(s)))  # prints 'hello\n  world\n'
9,
>>> s = 'hello\n\n \nworld'
>>> indent(s, '  ')
'  hello\n\n \n  world'
0,
>>> s = 'hello\n\n \nworld'
>>> indent(s, '  ')
'  hello\n\n \n  world'
1 và
>>> s = 'hello\n\n \nworld'
>>> indent(s, '  ')
'  hello\n\n \n  world'
2 sẽ không có hiệu lực.

Mới trong phiên bản 3.4.

________ 12 ________ 34 (văn bản) ¶(text)

Loại bỏ bất kỳ khoảng trắng hàng đầu chung khỏi mọi dòng trong văn bản.

Điều này có thể được sử dụng để tạo các chuỗi được trích xuất ba dòng xếp lên với cạnh trái của màn hình, trong khi vẫn trình bày chúng ở mã nguồn ở dạng thụt lề.

Lưu ý rằng các tab và không gian đều được coi là khoảng trắng, nhưng chúng không bằng nhau: các dòng

>>> s = 'hello\n\n \nworld'
>>> indent(s, '  ')
'  hello\n\n \n  world'
5 và
>>> s = 'hello\n\n \nworld'
>>> indent(s, '  ')
'  hello\n\n \n  world'
6 được coi là không có khoảng trắng hàng đầu.

Các dòng chỉ chứa khoảng trắng bị bỏ qua trong đầu vào và được chuẩn hóa thành một ký tự mới duy nhất trong đầu ra.

Ví dụ:

def test():
    # end first line with \ to avoid the empty line!
    s = '''\
    hello
      world
    '''
    print(repr(s))          # prints '    hello\n      world\n    '
    print(repr(dedent(s)))  # prints 'hello\n  world\n'
________ 12 ________ 38 (văn bản, tiền tố, vị từ = không)(text, prefix, predicate=None)

Thêm tiền tố vào đầu các dòng được chọn trong văn bản.

Các dòng được phân tách bằng cách gọi

>>> s = 'hello\n\n \nworld'
>>> indent(s, '  ')
'  hello\n\n \n  world'
9.

Theo mặc định, tiền tố được thêm vào tất cả các dòng không chỉ bao gồm khoảng trắng (bao gồm bất kỳ kết thúc dòng nào).

Ví dụ:

>>> s = 'hello\n\n \nworld'
>>> indent(s, '  ')
'  hello\n\n \n  world'

def test():
    # end first line with \ to avoid the empty line!
    s = '''\
    hello
      world
    '''
    print(repr(s))          # prints '    hello\n      world\n    '
    print(repr(dedent(s)))  # prints 'hello\n  world\n'
________ 12 ________ 38 (văn bản, tiền tố, vị từ = không)

>>> print(indent(s, '+ ', lambda line: True))
+ hello
+
+
+ world

Thêm tiền tố vào đầu các dòng được chọn trong văn bản.

Các dòng được phân tách bằng cách gọi

>>> s = 'hello\n\n \nworld'
>>> indent(s, '  ')
'  hello\n\n \n  world'
9.

Theo mặc định, tiền tố được thêm vào tất cả các dòng không chỉ bao gồm khoảng trắng (bao gồm bất kỳ kết thúc dòng nào).

Đối số vị ngữ tùy chọn có thể được sử dụng để kiểm soát các dòng được thụt vào. Ví dụ, thật dễ dàng để thêm tiền tố vào các dòng trống và chỉ có khoảng trắng:(**kwargs)

Mới trong phiên bản 3.3.

wrapper = TextWrapper(initial_indent="* ")

>>> textwrap.shorten("Hello  world!", width=12)
'Hello world!'
>>> textwrap.shorten("Hello  world!", width=11)
'Hello [...]'
>>> textwrap.shorten("Hello world", width=10, placeholder="...")
'Hello...'
6,
>>> textwrap.shorten("Hello  world!", width=12)
'Hello world!'
>>> textwrap.shorten("Hello  world!", width=11)
'Hello [...]'
>>> textwrap.shorten("Hello world", width=10, placeholder="...")
'Hello...'
9 và
>>> print(indent(s, '+ ', lambda line: True))
+ hello
+
+
+ world
2 hoạt động bằng cách tạo một thể hiện
>>> textwrap.shorten("Hello  world!", width=12)
'Hello world!'
>>> textwrap.shorten("Hello  world!", width=11)
'Hello [...]'
>>> textwrap.shorten("Hello world", width=10, placeholder="...")
'Hello...'
0 và gọi một phương thức duy nhất trên đó. Ví dụ đó không được sử dụng lại, vì vậy đối với các ứng dụng xử lý nhiều chuỗi văn bản bằng cách sử dụng
>>> textwrap.shorten("Hello  world!", width=12)
'Hello world!'
>>> textwrap.shorten("Hello  world!", width=11)
'Hello [...]'
>>> textwrap.shorten("Hello world", width=10, placeholder="...")
'Hello...'
6 và/hoặc
>>> textwrap.shorten("Hello  world!", width=12)
'Hello world!'
>>> textwrap.shorten("Hello  world!", width=11)
'Hello [...]'
>>> textwrap.shorten("Hello world", width=10, placeholder="...")
'Hello...'
9, có thể hiệu quả hơn để tạo đối tượng ____10 của riêng bạn.

wrapper = TextWrapper()
wrapper.initial_indent = "* "

Văn bản tốt nhất là được bọc trên khoảng trắng và ngay sau khi gạch nối bằng chữ dấu gạch nối; Chỉ sau đó, các từ dài sẽ bị phá vỡ nếu cần thiết, trừ khi

>>> print(indent(s, '+ ', lambda line: True))
+ hello
+
+
+ world
7 được đặt thành sai.

Lớp ________ 12 ________ 49 (** kwargs) ¶

Trình xây dựng
>>> textwrap.shorten("Hello  world!", width=12)
'Hello world!'
>>> textwrap.shorten("Hello  world!", width=11)
'Hello [...]'
>>> textwrap.shorten("Hello world", width=10, placeholder="...")
'Hello...'
0 chấp nhận một số đối số từ khóa tùy chọn. Mỗi đối số từ khóa tương ứng với một thuộc tính thể hiện, vì vậy ví dụ

giống như

Bạn có thể sử dụng lại cùng một đối tượng
>>> textwrap.shorten("Hello  world!", width=12)
'Hello world!'
>>> textwrap.shorten("Hello  world!", width=11)
'Hello [...]'
>>> textwrap.shorten("Hello world", width=10, placeholder="...")
'Hello...'
0 nhiều lần và bạn có thể thay đổi bất kỳ tùy chọn nào của nó thông qua gán trực tiếp cho các thuộc tính thể hiện giữa các sử dụng.

Các thuộc tính thể hiện ____10 (và các đối số từ khóa cho hàm tạo) như sau:

________ 61¶

.

Mới trong phiên bản 3.3.

________ 64¶

. Các ký tự khoảng trắng được thay thế như sau: Tab, Newline, Tab dọc, FormFeed và Return Vận chuyển (

wrapper = TextWrapper()
wrapper.initial_indent = "* "
7).

Ghi chú

Nếu

>>> s = 'hello\n\n \nworld'
>>> indent(s, '  ')
'  hello\n\n \n  world'
0 là sai và
>>> s = 'hello\n\n \nworld'
>>> indent(s, '  ')
'  hello\n\n \n  world'
2 là đúng, mỗi ký tự tab sẽ được thay thế bằng một khoảng trống, không giống như mở rộng tab.

Ghi chú

Nếu

>>> s = 'hello\n\n \nworld'
>>> indent(s, '  ')
'  hello\n\n \n  world'
0 là sai và
>>> s = 'hello\n\n \nworld'
>>> indent(s, '  ')
'  hello\n\n \n  world'
2 là đúng, mỗi ký tự tab sẽ được thay thế bằng một khoảng trống, không giống như mở rộng tab.

Nếu
>>> s = 'hello\n\n \nworld'
>>> indent(s, '  ')
'  hello\n\n \n  world'
2 là sai, Newlines có thể xuất hiện ở giữa một dòng và gây ra đầu ra lạ. Vì lý do này, văn bản nên được chia thành các đoạn văn (sử dụng
[...] Dr. Frankenstein's monster [...]
1 hoặc tương tự) được bọc riêng.

________ 72¶

. Tuy nhiên, khoảng trắng ở phần đầu của đoạn văn, tuy nhiên, không bị loại bỏ nếu không gian trắng tuân theo nó. Nếu khoảng trắng bị rơi xuống toàn bộ dòng, toàn bộ dòng bị loại bỏ.

________ 74¶

(Mặc định:
[...] Dr. Frankenstein's monster [...]
5) Chuỗi sẽ được chuẩn bị cho dòng đầu ra được gói đầu tiên. Đếm theo chiều dài của dòng đầu tiên. Chuỗi trống không được thụt vào.

________ 76¶

. Đếm theo chiều dài của mỗi dòng ngoại trừ đầu tiên.

________ 78¶

[...] Dr. Frankenstein's monster [...]

. Điều này thường được mong muốn cho văn bản trong một phông chữ đơn. Tuy nhiên, thuật toán phát hiện câu không hoàn hảo: nó giả định rằng một câu kết thúc bao gồm một chữ cái viết thường theo sau là một trong

[...] See Spot. See Spot run [...]
1,
[...] See Spot. See Spot run [...]
2 hoặc
[...] See Spot. See Spot run [...]
3, có thể theo sau một trong một trong một không gian. Một vấn đề với điều này là thuật toán là nó không thể phát hiện ra sự khác biệt giữa Tiến sĩ Trong

[...] See Spot. See Spot run [...]

và điểm. Trong

[...] See Spot. See Spot run [...]
6 là sai theo mặc định.

Do thuật toán phát hiện câu dựa trên
[...] See Spot. See Spot run [...]
7 cho định nghĩa về chữ thường của chữ thường, và một quy ước sử dụng hai khoảng trống sau một khoảng thời gian để phân tách các câu trên cùng một dòng, nó là cụ thể cho các văn bản tiếng Anh.

________ 88¶

. Nếu đó là sai, các từ dài sẽ không bị phá vỡ và một số dòng có thể dài hơn
def test():
    # end first line with \ to avoid the empty line!
    s = '''\
    hello
      world
    '''
    print(repr(s))          # prints '    hello\n      world\n    '
    print(repr(dedent(s)))  # prints 'hello\n  world\n'
5. (Các từ dài sẽ được đặt trên một dòng, để giảm thiểu số tiền mà
def test():
    # end first line with \ to avoid the empty line!
    s = '''\
    hello
      world
    '''
    print(repr(s))          # prints '    hello\n      world\n    '
    print(repr(dedent(s)))  # prints 'hello\n  world\n'
5 bị vượt quá.)

________ 94¶

. Nếu sai, chỉ có khoảng trắng sẽ được coi là nơi có khả năng tốt cho các lần phá vỡ dòng, nhưng bạn cần đặt textwrap6 thành sai nếu bạn muốn những từ thực sự không thể phân biệt được. Hành vi mặc định trong các phiên bản trước là luôn cho phép phá vỡ các từ gạch nối.

________ 97¶

.

Mới trong phiên bản 3.4.

________ 100¶

.

Mới trong phiên bản 3.4.

________ 100¶(text)

(Mặc định:

>>> textwrap.shorten("Hello  world!", width=12)
'Hello world!'
>>> textwrap.shorten("Hello  world!", width=11)
'Hello [...]'
>>> textwrap.shorten("Hello world", width=10, placeholder="...")
'Hello...'
01) Chuỗi sẽ xuất hiện ở cuối văn bản đầu ra nếu nó đã bị cắt ngắn.

>>> textwrap.shorten("Hello  world!", width=12)
'Hello world!'
>>> textwrap.shorten("Hello  world!", width=11)
'Hello [...]'
>>> textwrap.shorten("Hello world", width=10, placeholder="...")
'Hello...'
0 cũng cung cấp một số phương pháp công khai, tương tự như các hàm tiện lợi cấp độ mô-đun:(text)

________ 13 (văn bản) ¶