Python: токенизация с помощью фраз

У меня есть блоки текста, которые я хочу токенизировать, но я не хочу токенизировать пробелы и знаки препинания, как это кажется стандартом для таких инструментов, как НЛТК . Есть определенные фразы, которые я хочу токенизировать как единый токен вместо обычной токенизации.

Например, учитывая предложение «Западное крыло» - американский телесериал, созданный Аароном Соркиным, который первоначально транслировался на NBC с 22 сентября 1999 г. по 14 мая, Я хочу иметь возможность читать и записывать в файл.

Файл является двоичным, и я хочу сохранить в нем записи конкретной структуры . Поэтому я хочу выполнить fseek () для нужной мне записи, а затем сохранить запись с помощью fwrite () .

Код выглядит следующим образом ( MyRecord ] - это typedef для struct , а FILENAME - это #define для имени файла):

int saveRecord(MyRecord *pRecord, int pos)
{
    FILE* file = fopen(FILENAME, "a+b");
    if (file == NULL)
    {
        printf("Unable to open file %s\n", FILENAME);
        return 0;
    }

    fseek(file, pos * sizeof(MyRecord), SEEK_SET);
    fwrite(pRecord, sizeof(MyRecord), 1, file);
    fclose(file);
    return 1;
}

Однако этот код просто добавляет запись в конец файла, даже если я установил pos в 0. Почему fseek () не работает с SEEK_SET в режиме добавления ?

Я знаю, что могу просто открыть его с помощью «r + b», а если не удастся, открыть его с помощью «wb», но я хочу знать, почему это не так. t работает, и почему fseek () с SEEK_SET оставляет указатель файла в конце. Приветствуются любые ссылки на места, где задокументировано такое поведение (потому что я не смог их найти или использую неправильные ключевые слова).

12
задан jbx 3 April 2011 в 20:42
поделиться