我想知道如何將字符讀入 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 但我沒有作業。對這個問題有什么想法嗎?非常感謝!
uj5u.com熱心網友回復:
您的主要問題是您希望在 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()只能弄亂它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/338365.html
