Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 删除cStringIO.StringIO的已用部分_Python_String_Exception - Fatal编程技术网

Python 删除cStringIO.StringIO的已用部分

Python 删除cStringIO.StringIO的已用部分,python,string,exception,Python,String,Exception,这段代码。。输出将是什么 第1条打印语句的输出 回溯(最近一次呼叫最后一次): 文件“C:\Users\manojtut\Desktop\untitled-1.py”,第9行,在 p=100/0 ZeroDivisionError:整数除法或模零除法 第二个print语句的输出 回溯(最近一次呼叫最后一次): 文件“C:\Users\manojtut\Desktop\untitled-1.py”,第9行,在 p=100/0 ZeroDivisionError:整数除法或模零除法 回溯(最近一次呼

这段代码。。输出将是什么

第1条打印语句的输出 回溯(最近一次呼叫最后一次): 文件“C:\Users\manojtut\Desktop\untitled-1.py”,第9行,在 p=100/0 ZeroDivisionError:整数除法或模零除法

第二个print语句的输出 回溯(最近一次呼叫最后一次): 文件“C:\Users\manojtut\Desktop\untitled-1.py”,第9行,在 p=100/0 ZeroDivisionError:整数除法或模零除法 回溯(最近一次呼叫最后一次): 文件“C:\Users\manojtut\Desktop\untitled-1.py”,第16行,在 q=100/0 ZeroDivisionError:整数除法或模零除法

正如您所看到的,在第一个zerodivision遇到的异常将在第二个print语句中再次打印,这是我不希望看到的。我是否可以消除/清除第一个异常回溯,以便在第二个print语句中只能打印第二个异常的回溯?

添加以下内容:

import os, sys
from cStringIO import StringIO
import traceback

old_stdErr = sys.stderr
sys.stderr = mystdErr = StringIO()

try:
    p = 100/0
except Exception:
     traceback.print_exc(file=sys.stderr)

print mystdErr.getvalue()             ### -- 1st Print statement 

try:
   q = 100/0
except Exception:
   traceback.print_exc(file = sys.stderr)

print mystdErr.getvalue()             ### -- 2nd Print statement
在第二个街区之前<代码>重置将文件位置重置为开头,并从那里开始写入<代码>截断删除当前位置之后的所有数据。如果省略“truncate”,则流中的数据将从后续写入中被覆盖。

添加以下内容:

import os, sys
from cStringIO import StringIO
import traceback

old_stdErr = sys.stderr
sys.stderr = mystdErr = StringIO()

try:
    p = 100/0
except Exception:
     traceback.print_exc(file=sys.stderr)

print mystdErr.getvalue()             ### -- 1st Print statement 

try:
   q = 100/0
except Exception:
   traceback.print_exc(file = sys.stderr)

print mystdErr.getvalue()             ### -- 2nd Print statement

在第二个街区之前<代码>重置将文件位置重置为开头,并从那里开始写入<代码>截断删除当前位置之后的所有数据。如果省略了“truncate”-流中的数据将从后续写入中被覆盖。

以前未找到重置函数的引用。谢谢,伙计。以前没有找到重置功能的参考。谢谢你,伙计。