gpt4 book ai didi

python-2.7 - 尝试将 cProfile 信息写入文件时出错

转载 作者:行者123 更新时间:2023-12-03 01:20:14 25 4
gpt4 key购买 nike

我正在尝试加载 cProfile 配置文件,进行一些排序和处理,然后将结果输出到文件中。基于documentation ,我想我可以简单地传递一个文件对象,print_stats 函数将重定向到该流。

这是我尝试使用的代码:

import sys,pstats
s = open('output.txt', 'w')
p = pstats.Stats('profile.dat', s)

这是产生的错误:

TypeError: Cannot create or construct a <class pstats.Stats at 0xbaa870> object from '<open file 'output.txt', mode 'w' at 0xb2ef60>''

我还应该补充一点,当我不将对象传递给流参数时,输出会在终端中正常显示。

最佳答案

查看源代码,您必须将文件作为 stream 关键字参数传递(我不清楚为什么要这样实现......),例如:

p = pstats.Stats('profile.dat', stream = s)

请参阅下面的内联注释和 if "stream"in kwds 行。

class Stats:
"""..."""
def __init__(self, *args, **kwds):
# I can't figure out how to explictly specify a stream keyword arg
# with *args:
# def __init__(self, *args, stream=sys.stdout): ...
# so I use **kwds and sqauwk if something unexpected is passed in.
self.stream = sys.stdout
if "stream" in kwds:
self.stream = kwds["stream"]
del kwds["stream"]
if kwds:
keys = kwds.keys()
keys.sort()
extras = ", ".join(["%s=%s" % (k, kwds[k]) for k in keys])
raise ValueError, "unrecognized keyword args: %s" % extras
if not len(args):
arg = None
else:
arg = args[0]
args = args[1:]
self.init(arg)
self.add(*args)

关于python-2.7 - 尝试将 cProfile 信息写入文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23035229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com