读取单个字符(不是字节)而不等待python中的行尾或EOF

时间:2014-02-22 15:39:56

标签: python python-3.x

我想知道如何从文件中读取单个(可能是多字节)字符(例如sys.stdin),而不必等待任何其他字符,行尾或文件末尾。主要用途是能够在角色可用时立即从标准输入读取。

我主要使用的是python 3。

以下代码说明了在C中执行此操作的方法,其中读取字符只是立即打印到标准输出:

#include <stdio.h>
#include <wchar.h>
#include <locale.h>

int main(void)
{
    setlocale(LC_CTYPE, "");
    wint_t wc;
    while ((wc = fgetwc(stdin)) != WEOF)
    {
        fputwc(wc, stdout);
    }
}

1 个答案:

答案 0 :(得分:2)

这样的东西?

import sys
import functools
for c in iter(functools.partial(sys.stdin.read, 1), ''):
    print(c)