Я пытаюсь создать файл журнала, который получает переменную информацию с помощью pprint globals() и записывает в файл. Но так как я должен использовать множество петель, есть способ поместить все pprint глобалам() выход во время каждого цикла в конце файла журнал для кода показан ниже:Как пометить globals() в цикле (с другой командой записи) в конце файла?
import numpy as np
from pprint import pprint
A = np.array([1, 2, 3, 4])
f = open("log.txt", 'w')
n = 3
for i in range(n):
f.write(u'\u27A4 - %s\n'.encode('utf-8') % str(i))
A = A + 1
f.writelines(list(u' \u27B3 - %s\n'.encode('utf-8') % i for i in A))
pprint(globals(), f)
f.close()
Выхода
➤ - 0
➳ - 2
➳ - 3
➳ - 4
➳ - 5
{'A': array([2, 3, 4, 5]),
'__builtins__': <module '__builtin__' (built-in)>,
'__doc__': None,
'__file__': '~/Stack exchange/pprint_global.py',
'__name__': '__main__',
'__package__': None,
'f': <open file 'log.txt', mode 'w' at 0xb66588b8>,
'i': 0,
'n': 2,
'np': <module 'numpy' from '/usr/lib/python2.7/dist-packages/numpy/__init__.pyc'>,
'pprint': <function pprint at 0xb6e2748c>}
➤ - 1
➳ - 3
➳ - 4
➳ - 5
➳ - 6
{'A': array([3, 4, 5, 6]),
'__builtins__': <module '__builtin__' (built-in)>,
'__doc__': None,
'__file__': '~/Stack exchange/pprint_global.py',
'__name__': '__main__',
'__package__': None,
'f': <open file 'log.txt', mode 'w' at 0xb66588b8>,
'i': 1,
'n': 2,
'np': <module 'numpy' from '/usr/lib/python2.7/dist-packages/numpy/__init__.pyc'>,
'pprint': <function pprint at 0xb6e2748c>}
Желаемая выход
➤ - 0
➳ - 2
➳ - 3
➳ - 4
➳ - 5
➤ - 1
➳ - 3
➳ - 4
➳ - 5
➳ - 6
{'A': array([2, 3, 4, 5]),
'__builtins__': <module '__builtin__' (built-in)>,
'__doc__': None,
'__file__': '~/Stack exchange/pprint_global.py',
'__name__': '__main__',
'__package__': None,
'f': <open file 'log.txt', mode 'w' at 0xb66588b8>,
'i': 0,
'n': 2,
'np': <module 'numpy' from '/usr/lib/python2.7/dist-packages/numpy/__init__.pyc'>,
'pprint': <function pprint at 0xb6e2748c>}
{'A': array([3, 4, 5, 6]),
'__builtins__': <module '__builtin__' (built-in)>,
'__doc__': None,
'__file__': '~/Stack exchange/pprint_global.py',
'__name__': '__main__',
'__package__': None,
'f': <open file 'log.txt', mode 'w' at 0xb66588b8>,
'i': 1,
'n': 2,
'np': <module 'numpy' from '/usr/lib/python2.7/dist-packages/numpy/__init__.pyc'>,
'pprint': <function pprint at 0xb6e2748c>}
Первое впечатление было бы поместить команду pprint A t конец кода, но это не даст мне переменную информацию во время каждого цикла. Это даст мне значение только в конце цикла. Короче, мне нужна переменная информация в каждом цикле (который имеет другую команду записи журнала), написанную в конце файла журнала.
Вы могли бы написать на два отдельных файлов? –
Мне нужен он в том же файле. –
Это не представляется возможным, если вы не хотите переписать весь файл на каждую итерацию. Поскольку после первой итерации ваш файл будет выглядеть как «A1, globals (A1)», но затем вы хотите изменить его на «A1, A2, globals (A1), globals (A2)» и т. Д. Я правильно понимать? –