Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Как использовать команду seek в python для работы с файлами?

  1. Как использовать команду seek в python для работы с файлами?

    Ребята, столкнулся с задачей, где надо прочитать определённые части файла. Как я понял, для этого юзают команду seek в python, но не особо врубаюсь, как она работает. Может, кто-то разъяснит? Можете кинуть примерчики кода и объяснить, что вообще происходит. Особо интересно, как работать с большими файлами, которые не влезают в оперативку целиком.



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Навскидку, команда seek в python используется для изменения текущей позиции указателя в файле. Вот пример:

    Программный код:
    with open('example.txt''rb') as f:
        
    f.seek(10)  # Перемещаем указатель на 10 байт от начала
        
    data f.read(20)  # Читаем следующие 20 байт
        
    print(data
    В этом примере мы сначала перемещаемся на 10 байт, а потом читаем 20 байт начиная с этой точки.

  4. Цитата Сообщение от ВолшебникИзумрудногоГорода
    Навскидку, команда seek в python используется для изменения текущей позиции указателя в файле. Вот пример:

    Программный код:
    with open('example.txt''rb') as f:
        
    f.seek(10)  # Перемещаем указатель на 10 байт от начала
        
    data f.read(20)  # Читаем следующие 20 байт
        
    print(data
    В этом примере мы сначала перемещаемся на 10 байт, а потом читаем 20 байт начиная с этой точки.
    Ну норм, понятно... А что, если надо с конца файла начинать читать?

  5. Чувак, тебя явно интересует работа с большими файлами. Вот пример, как читать файл с конца:

    Программный код:
    with open('example.txt''rb') as f:
        
    f.seek(-202)  # Перемещаем указатель на 20 байт от конца
        
    data f.read(20)  # Читаем последние 20 байт файла
        
    print(data
    Аргумент -20 говорит, что мы перемещаем указатель на 20 байт назад от конца файла.

  6. Цитата Сообщение от Greta
    Чувак, тебя явно интересует работа с большими файлами. Вот пример, как читать файл с конца:

    Программный код:
    with open('example.txt''rb') as f:
        
    f.seek(-202)  # Перемещаем указатель на 20 байт от конца
        
    data f.read(20)  # Читаем последние 20 байт файла
        
    print(data
    Аргумент -20 говорит, что мы перемещаем указатель на 20 байт назад от конца файла.
    О, круто! Теперь понял. А что означает второй аргумент?

  7. Второй аргумент метода seek() может быть 0, 1 или 2.
    - 0: от начала файла (default).
    - 1: от текущей позиции.
    - 2: от конца файла.

    Важно помнить, что read() читает байты, поэтому не запутаешься даже с Unicode.

  8. Цитата Сообщение от Овен
    Второй аргумент метода seek() может быть 0, 1 или 2.
    - 0: от начала файла (default).
    - 1: от текущей позиции.
    - 2: от конца файла.

    Важно помнить, что read() читает байты, поэтому не запутаешься даже с Unicode.
    Чисто инфа! Без кода, но юзлес не назвать.

  9. Для примера могу дать полный скрипт, который работает с большими файлами:

    Программный код:
    def read_chunks(file_pathchunk_size=1024):
        
    with open(file_path'rb') as f:
            while 
    True:
                
    chunk f.read(chunk_size)
                if 
    not chunk:
                    break
                yield 
    chunk
      
    for chunk in read_chunks('largefile.dat'):
        
    process(chunk)  # Обрабатываем порции файла по chunk_size байт 
    Так читаешь небольшой кусок файла за раз и обрабатываешь, вместо того, чтобы тащить весь файл в память.

  10. Цитата Сообщение от Faust
    Для примера могу дать полный скрипт, который работает с большими файлами:

    Программный код:
    def read_chunks(file_pathchunk_size=1024):
        
    with open(file_path'rb') as f:
            while 
    True:
                
    chunk f.read(chunk_size)
                if 
    not chunk:
                    break
                yield 
    chunk
      
    for chunk in read_chunks('largefile.dat'):
        
    process(chunk)  # Обрабатываем порции файла по chunk_size байт 
    Так читаешь небольшой кусок файла за раз и обрабатываешь, вместо того, чтобы тащить весь файл в память.
    Йоу! Этот метод реально спасает, когда байтики мегабайтами весит. Спасибо, бро!

Страница 1 из 2 12 ПоследняяПоследняя