如何找到Python stdout文件对象的位置?

时间:2017-02-20 15:13:23

标签: python

在Python中我知道标准输出流可用作内置sys模块中的 stdout 文件对象,但我很困惑:首先,我无法找到< em> sys 模块与我使用任何其他模块(modulename.__file__)的方式相同; secondond,我不知道如何找到stdout文件对象。

1 个答案:

答案 0 :(得分:1)

stdoutsys模块中定义。假设您正在使用C实现,请下载源代码(3.6)并查看Python/sysmodule.c。但是,stdout本身是从PyId_stdout分配的,Python/pylifecycle.cinitstdio函数/* Set sys.stdout */ fd = fileno(stdout); std = create_stdio(iomod, fd, 1, "<stdout>", encoding, errors); if (std == NULL) goto error; PySys_SetObject("__stdout__", std); _PySys_SetObjectId(&PyId_stdout, std); Py_DECREF(std); 中定义:

stdio

如您所见,它源自__stdout__ C运行时库。另外,stdout是同时创建的,如果您重新分配create_stdio,这意味着要恢复grant_type=password

同一源文件中的函数#if need only some easy arithmetic operation like sum print (df.apply(lambda x: x.index + x.name, axis=1)) 1 2 3 1 2 3 4 2 3 4 5 3 4 5 6 还包含更多详细信息,如缓冲,换行符和编码。