Python 读取字符

Python read character

我想知道如何将字符读入 Python 中的缓冲区? 在 C 代码中,我可以轻松声明缓冲区字符,例如 char buffer[256];:

void read_char(int x, char buffer[], int *flag_stop) {
int i, length;
char character;

i = 0;
bzero(buffer, 256);

do {
    if ((length = read(x, &character, 1)) <= 0) 
    {
        *flag_stop = 1;
        break;
    }
    buffer[i] = character;
    i++;
}
while(c != 0x0A);

}

但是我不知道在 Python 中该怎么做,所以代码是这样的:

def read_char(x,buffer,**flag_stop):
i = 0  
buffer = np.array([], dtype='S64')  
while True:  
    if os.read(x, character, 1) <= 0: 
        **flag_stop == 1
        break
    buffer[i] = str(character)
    i=i+1
    if(character != 0x0A):  
        break

我试过 numpy.chararray 但我没有用。对这个问题有什么想法吗?非常感谢!

您的主要问题是您希望在 Python 中编写与在 C 中完全相同的代码。

Python 需要这样的东西

def read_char(x):
    flag_stop = False  # or 0
    i = 0
    buffer = np.array([], dtype='S64')
    
    while True:
        character = os.read(x, 1)
        if not character:   # if len(character) < 0
            flag_stop = True # or 1
            break
        buffer[i] = character
        i += 1
        if character != 0x0A:  
           break

    return buffer, flag_stop

# ---

buffer, flag_stop = read_char(file_handler)

我不喜欢你的代码中的 str() - 你可能会得到单字节,它是多字节代码的一部分(如 utf-8)并且转换为 str() 只能搞砸了。