Removing Indentation from Multiline Strings in Python
Multiline strings often need to be indented in Python to improve readability and organization. However, when embedded within functions, this indentation becomes excessive. A common question arises: "Does Python have a built-in function for removing this global indentation?"
Solution:
While Python doesn't have a dedicated built-in function for unindenting multiline strings, the textwrap.dedent() function from the standard library serves this purpose effectively.
This function takes a multiline string as input and strips whitespace from all lines of text that exceeds the common indentation level. It assumes that the first line is not indented and removes the preceding whitespace from the remaining lines.
Example:
Let's consider the following multiline string with global 4-space indentation:
s = """ Controller = require 'controller' class foo view: 'baz' class: 'bar' constructor: -> Controller.mix @ """
Using textwrap.dedent(), we can remove the global indentation:
import textwrap unindented_s = textwrap.dedent(s) print(unindented_s)
Output:
Controller = require 'controller' class foo view: 'baz' class: 'bar' constructor: -> Controller.mix @
As illustrated, the global indentation has been effectively removed, making the string suitable for use within functions or other contexts where indentation is not desired.
The above is the detailed content of How to Unindent Multiline Strings in Python Without Losing Readability?. For more information, please follow other related articles on the PHP Chinese website!