Вот вариант ответа Yuda Prawira :
flush()
и все атрибуты файла stderr
также .
import contextlib, sys
@contextlib.contextmanager
def log_print(file):
# capture all outputs to a log file while still printing it
class Logger:
def __init__(self, file):
self.terminal = sys.stdout
self.log = file
def write(self, message):
self.terminal.write(message)
self.log.write(message)
def __getattr__(self, attr):
return getattr(self.terminal, attr)
logger = Logger(file)
_stdout = sys.stdout
_stderr = sys.stderr
sys.stdout = logger
sys.stderr = logger
yield logger.log
sys.stdout = _stdout
sys.stderr = _stderr
with log_print(open('mylogfile.log', 'w')):
print('hello world')
print('hello world on stderr', file=sys.stderr)
# you can capture the output to a string with:
# with log_print(io.StringIO()) as log:
# ....
# print('[captured output]', log.getvalue())
Этот JS обычно работал хорошо на меня, если Вы также помещаете идентификатор на элемент:
document.getElementById('MyID').scrollIntoView(true);
Это хорошо, поскольку это также расположит отделения с возможностью прокрутки и т.д. так, чтобы содержание было видимо.
Используя JavaScript:
window.location.href = '#label2';
, Если необходимо сделать это с сервера/кода позади, можно просто испустить этот JavaScript и зарегистрировать его как сценарий запуска для той страницы.
Я предполагаю, что это будет работать:
window.location="<yourCurrentUri>#label2";
Если элемент является тегом привязки, необходимо быть в состоянии сделать:
document.getElementsByName('label2')[0].focus();
никакой "#", когда Вы используете window.location.hash
можно просто открыть новый URL с добавленным именем, например http://www.example.com/mypage.htm#label2
В JavaScript,
location.href = location.href + '#label2';