Python将先前编写的行放入变量

时间:2019-01-25 09:59:05

标签: python

我正在使用一个模块,当它输出错误时,它只会打印该错误并继续执行脚本,我想将该错误放入变量中,但是由于这种行为,我只能做例外,除了Exception作为e,所以我正在寻找一种将先前打印的行放入变量的方法 注意:我尝试在模块中寻找它的打印位置,但找不到它

1 个答案:

答案 0 :(得分:0)

好吧,这不是很漂亮,但是您可以(希望写不会做任何有趣的事情)尝试劫持<li class="nav-item px-3 fixed-bottom"> <NavLink class="nav-link" href="" Match=NavLinkMatch.All> <span class="oi oi-arrow-thick-left" aria-hidden="true"></span>Logout </NavLink> </li> (或sys.stdout.write(),具体取决于脚本的写入位置)。< / p>

这可能是这样做的一种方式,虽然可能很丑陋:

stderr

这将为您提供import sys class Wrap: def __init__(self): self.last_line = None self._next_line = '' def write(self, text, *args, **kwargs): sys.__stdout__.write(text, *args, **kwargs) self._next_line += text try: self.last_line = self._next_line.split('\n')[-2] self.next_line = self._next_line.split('\n')[-1] except IndexError: # We did not have \n yet and _next_line did not split # into at least two items pass save_stdout = sys.stdout sys.stdout = Wrap() print('xxx\nzzz') # This was that function you wanted to call last_line = sys.stdout.last_line sys.stdout = save_stdout print(last_line) 作为输出。即zzz是我们的包装程序时,最后一行打印(不添加换行符(重新))。

您当然可以只编写一个函数包装器,并使用它来正式化hack。