[Python] How to indent with pprint in Python?

Discussão em 'Python' iniciado por Stack, Março 14, 2025.

  1. Stack

    Stack Membro Participativo

    I am trying to indent the output of pprint so that I will get an 8 space indentation with pprint. The code I used is:

    import numpy as np
    from pprint import pprint
    A = np.array([1, 2, 3, 4])
    f = open("log.txt", 'w')
    n = 2
    for i in range(n):
    A = A + 1
    f.writelines(list(u' \u27B3 - %s\n'.encode('utf-8') % i for i in A))
    pprint(globals())


    Output

    {'A': array([2, 3, 4, 5]),
    '__builtins__': <module '__builtin__' (built-in)>,
    '__doc__': None,
    '__file__': '~/Stack exchange/pprint_tab.py',
    '__name__': '__main__',
    '__package__': None,
    'f': <open file 'log.txt', mode 'w' at 0xb659b8b8>,
    'i': 0,
    'n': 2,
    'np': <module 'numpy' from '/usr/lib/python2.7/dist...,
    'pprint': <function pprint at 0xb6dea48c>}
    {'A': array([3, 4, 5, 6]),
    '__builtins__': <module '__builtin__' (built-in)>,
    '__doc__': None,
    '__file__': '~/Stack exchange/pprint_tab.py',
    '__name__': '__main__',
    '__package__': None,
    'f': <open file 'log.txt', mode 'w' at 0xb659b8b8>,
    'i': 1,
    'n': 2,
    'np': <module 'numpy' from '/usr/lib/python2.7/dist...,
    'pprint': <function pprint at 0xb6dea48c>}


    Desired output

    {'A': array([2, 3, 4, 5]),
    '__builtins__': <module '__builtin__' (built-in)>,
    '__doc__': None,
    '__file__': '~/Stack exchange/pprint_tab.py',
    '__name__': '__main__',
    '__package__': None,
    'f': <open file 'log.txt', mode 'w' at 0xb659b8b8>,
    'i': 0,
    'n': 2,
    'np': <module 'numpy' from '/usr/lib/python2.7/dist...,
    'pprint': <function pprint at 0xb6dea48c>}
    {'A': array([3, 4, 5, 6]),
    '__builtins__': <module '__builtin__' (built-in)>,
    '__doc__': None,
    '__file__': '~/Stack exchange/pprint_tab.py',
    '__name__': '__main__',
    '__package__': None,
    'f': <open file 'log.txt', mode 'w' at 0xb659b8b8>,
    'i': 1,
    'n': 2,
    'np': <module 'numpy' from '/usr/lib/python2.7/dist...,
    'pprint': <function pprint at 0xb6dea48c>}


    In short, I need a space indentation when written to file or printed with pprint. I tried

    pp = pprint.PrettyPrinter(indent=8)


    but it does not work

    Continue reading...

Compartilhe esta Página