Как читать правильно читать файлы

Обновлено: 06.07.2024

Традиционные методы fopen

Методы fopen , возможно, лучше других знакомы программистам C и C++ былых времен, поскольку в большей или меньшей степени являются именно теми инструментами, которые на протяжении долгих лет были всегда у вас под рукой, если вы работали с этими языками программирования. Для любого из этих методов вы выполняете стандартную процедуру, используя fopen для открытия файла, функцию для чтения данных, а затем fclose для закрытия файла, как показано в Листинге 1.

Листинг 1. Открытие и чтение файла с помощью fgets

Хотя эти функции знакомы большинству опытных программистов, позвольте мне проанализировать их работу. В действительности вы выполняете следующие шаги:

  1. Открываете файл. $file_handle хранит ссылку на сам файл.
  2. Проверяете, не достигли ли вы конца файла.
  3. Продолжаете считывание файла, пока не достигнете конца, печатая каждую строку, которую читаете.
  4. Закрываете файл.

Помня об этом, я рассмотрю каждую использованную здесь функцию для работы с файлами.

Функция fopen

Это строка программы создает связь с вышеуказанной страницей и позволяет вам начать ее чтение как локального файла.

Примечание: Параметр "r" , использованный в fopen , указывает на то, что файл открыт только для чтения. Поскольку запись в файл не входит в круг вопросов, рассматриваемых в данной статье, я не стану перечислять все возможные значения параметра. Тем не менее, вам необходимо изменить "r" на "rb" если вы производите чтение из двоичных файлов для межплатформенной совместимости. Ниже будет приведен пример данного типа.

Функция feof

Функция fclose

Пропустим середину Листинга 1 и перейдем в конец; fclose выполняет задачу, противоположную fopen : она закрывает подключение к файлу или URL. После выполнения данной функции вы больше не сможете выполнять чтение из файла или сокета.

Функция fgets

Если вы решите ограничить размер порции данных, с которой работаете, можно добавить fgets аргумент для ограничения максимальной длины строки захватываемых данных. Например, используйте следующий программный код для ограничения длины строки в 80 символов:

Функция fread

В приведенном выше примере считывается 4096 байтов (4 KB) данных. Обратите внимание, что, независимо от указанного вами значения, fread будет считывать не более 8192 байтов (8 KB).

Допуская, что файл не более 8 KB, фрагмент программы, приведенный ниже, должен считывать весь файл в одну строку.

Если размер файла больше, вам придется использовать цикл для считывания оставшейся его части.

Функция fscanf

Возвращаясь к обработке строк, отметим, что fscanf также является преемницей традиционной файловой библиотечной функции C. Если вы не знакомы с ней, fscanf считывает поля данных в переменные из файла.

Функция fgetss

Листинг 2. Пример файла HTML
< p >If you understand what "Cause there ain't no one for to give you no pain" means then you listen to too much of the band America</ p >

Пропустим его через функцию fgetss .

Листинг 3. Использование fgetss

Вот что вы получите в качестве выходных данных:

If you understand what "Cause there ain't no one for to give you no pain" means then you listen to too much of the band America

Функция fpassthru

Вне зависимости от того, как вы считываете данные из файла, вы можете вывести оставшиеся данные на печать, используя стандартный канал вывода информации, посредством функции fpassthru .

Эта функция выводит данные на печать, поэтому вам не нужно помещать их в переменную.

Нелинейная обработка файла: перемещение по файлу

Конечно, описанные выше функции позволяют вам выполнять чтение из файла лишь последовательно. Более сложные файлы могут потребовать перемещения к разным частям файла в его начале или конце. Для этого вам потребуется функция fseek .

Начиная с PHP V4.0, доступны также несколько других опций. Например, если нужно перейти вперед на 100 байт от вашей текущей позиции, вы можете использовать следующий код:

Аналогично, переход назад на 100 байт осуществляется посредством:

Если вы хотите перейти назад в положение 100 байт до конца файла, используйте вместо этого SEEK_END .

После достижения нового положения вы можете воспользоваться fgets , fscanf или другой функцией для чтения данных.

Примечание: вы не можете использовать fseek в дескрипторах файла, ссылающихся на URL.

Захват целого файла

Теперь мы переходим к рассмотрению некоторых уникальных возможностей PHP для обработки файлов: обработка больших блоков данных в одной или двух строках. Например, как можно захватить файл и вывести все его содержимое на вашу Web-страницу? Что же, вы видели пример использования цикла с fgets . Но как сделать это проще? Процесс почти смехотворно прост при использовании fgetcontents , которая помещает весь файл в строку.

Хотя это и не лучший вариант, вы можете записать эту команду еще короче:

Данная статья в первую очередь посвящена обработке локальных файлов, однако, стоит отметить, что вы можете также захватить, отобразить и проанализировать другие Web-страницы с помощью описанных функций.

Это команда фактически та же, что и:

Но к чему вам все эти сложности, если есть идеально подходящая функция, которая сделает за вас эту работу? Функция PHP file() выполняет эту задачу в один шаг: она возвращает строковый массив, элементами которого являются строки файла.

Следует заметить, что между двумя приведенными выше примерами есть небольшое отличие. Команда split удаляет знаки перехода на новую строку, тогда как при использовании команды file строки массива оканчиваются знаками перехода на новую строку (также, как и при использовании fgets ).

Возможности PHP, тем не менее, далеко превосходят описанные выше. Вы можете разбить целые .ini-файлы в стиле PHP всего одной командой parse_ini_file . Команда parse_ini_file применима к файлам, сходным с приведенным в Листинге 4.

Листинг 4. Пример файла .ini

Следующие команды представляют файл в виде массива, а затем выводят этот массив на печать:

В результате будут получены следующие выходные данные:

Листинг 5. Выходные данные

Конечно, вы можете заметить, что данная команда объединила разделы. Это действие по умолчанию, но вы легко можете произвести необходимую настройку, воспользовавшись вторым аргументом parse_ini_file : process_sections , который является переменной логического типа (Boolean). Установите значение process_sections как True (истина).

И ваши выходные данные будут иметь вид:

Листинг 6. Выходные данные

PHP помещает данные в легко разбиваемый для анализа многомерный массив.

Но это лишь верхушка айсберга, если говорить об обработке файлов в PHP. Более сложные функции, например tidy_parse_file и xml_parse могут помочь вам с обработкой соответственно HTML- и XML-документов. Обратитесь к разделу Ресурсы, чтобы получить более подробную информацию о работе этих функций. Обе они стоят внимания, если вы будете работать с файлами указанных типов, но вместо рассмотрения всех возможных типов файлов, вы можете внимательно ознакомиться с содержанием данной статьи, где есть несколько неплохих общих правил по работе с функциями, описанными мной к настоящему моменту.

Хороший стиль программирования

Никогда не считайте, что все в вашей программе будет работать так, как было задумано. Например: что, если файл, который вы ищете, был перемещен? Что, если в результате изменения прав доступа вы не можете прочитать содержимое файла? Можно заранее проверить наличие файла и права на его чтение, воспользовавшись методами file_exists и is_readable .

Листинг 7. Использование file_exists и is_readable

Тем не менее, на практике этот фрагмент программы будет, пожалуй, чрезмерным для вашей задачи. Обработка значений, возвращаемых fopen , проще и точнее.

Как и fopen , функции file_get_contents , file и readfile возвращают значение False, если не удается открыть или обработать файл. Функции fgets , fgetss , fread , fscanf и fclose также возвращают значение False при возникновении ошибки. Конечно, за исключением fclose , вы, вероятно уже обработали возвращенные ими результаты. Что касается fclose , мало что можно сделать, если дескриптор файла не закрывается должным образом, поэтому проверка возвращенного значения функции fclose , как правило, является излишней.

Выбор за вами

PHP не испытывает недостатка в эффективных способах чтения и анализа файлов. Классические функции, такие как fread , могут надежно служить вам большую часть времени, или же вас может больше привлечь простота readfile , если это необходимо для выполнения задачи. Выбор, на самом деле, зависит от того, что вы пытаетесь выполнить.

Если вы обрабатываете большие объемы данных, вероятно, fscanf окажется более полезной и эффективной, чем, скажем, использование file в сочетании с последующими командами split и sprintf . Если же вы просто отображаете текст большого объема с незначительными изменениями, напротив, использование функций file , file_get_contents , или readfile , возможно, будет более целесообразным. Это решение, вероятно, будет верным при использовании PHP для кэширования или даже создания временного прокси сервера.

PHP предоставляет множество инструментов для работы с файлами. Познакомьтесь ближе с каждым из них и узнайте, какие средства оптимально подходят для проекта, над которым вы работаете. Вам предлагается широкий выбор программных средств, используйте их наиболее эффективно и получайте удовольствие, обрабатывая ваши файлы средствами PHP.

Стандартные библиотеки PHP умеют генерировать только целые случайные числа. Однако, возникают задачи где нужно не целое рандомное число с максимально…

Ещё одна интересная статья на тему докера с примерами использования docker-compose для автоматического развёртывания всей экосистемы проекта. Поможет быстро структурировать…

Иногда при обработке с помощью PHP больших и не очень данных, можно словить досадную ошибку посреди выполнения скрипта: PHP Fatal…

При использовании python для чтения txt-файла это эквивалентно чтению файла с жесткого диска в память. Если мы хотим управлять этим файлом, нужно ли нам сначала получить этот файловый объект? Только после получения файлового объекта можно по-настоящему манипулировать файлом, будь то чтение содержимого файла или запись содержимого в файл.
Этот «дескриптор файла» содержит имя файла, набор символов файла, размер файла и начальную позицию файла на жестком диске.

3) Продемонстрируйте, как читать файлы
① Демонстрация выглядит следующим образом


Результаты приведены ниже:

② Очень странное явление?
4) Продемонстрируйте, как писать файлы


Результаты приведены ниже:

Если бы мы написали предложение «Солнце встает на площади Тяньаньмэнь», что бы произошло?


Результаты приведены ниже:

Произошла авария. Когда мы снова пишем новый контент, мы обнаруживаем, что ранее написанный контент отсутствует. Почему? Это «несколько распространенных режимов чтения и записи файлов», о которых мы поговорим ниже.

2. Несколько распространенных режимов чтения и записи файлов (точки знаний, о которых вы не знаете)


1) Инструкции по использованию r +, w +, a + (подвержены ошибкам)

Когда мы читаем файл, записываем часть содержимого в файл (перезаписываем) и добавляем содержимое записи в файл, лучший способ - использовать три режима r, w и a соответственно. Для этих трех режимов: чтение или запись, режим чтения не может писать, а режим записи не может читать.
Для трех режимов r +, w +, a +, если вы не особо понимаете принцип чтения и записи файлов Python, не используйте его легкомысленно, потому что возникнет много проблем. Мы продемонстрируем только r +, Три режима w + и a +.

2) режим r +: чтение и запись

Для этого режима, будь то чтение содержимого файла или запись содержимого в файл. Предпосылка: файл существует.


Результаты приведены ниже:

Анализ результатов:
В режиме r +, когда файл доступен только для чтения, содержимое можно читать.
Когда содержимое записывается, содержимое файла считывается немедленно, и ничего не обнаруживается. Это связано с тем, что, когда вы пишете контент, дескриптор файла будет помещен в конец записанного контента, поэтому при немедленном чтении дескриптор будет считан с последней позиции последнего контента, поэтому чтение будет пустым .
После записи содержимого в файл отрегулируйте положение маркера, а затем прочитайте содержимое в файле и обнаружите, что содержимое есть. Это потому, что мы использовали метод f.seek (0) для настройки дескриптора от конца содержимого к началу содержимого, чтобы снова было содержимое.

3) w +: чтение и запись


Результаты приведены ниже:

Анализ результатов:
В режиме w +, когда мы записываем bbbbbb непосредственно в файл, это, несомненно, возможно.
Затем мы непосредственно читаем содержимое этого файла, произошел странный феномен, и ничего не было прочитано. Это связано с тем, что в режиме w + при чтении файлов по умолчанию сначала выполняется запись, а затем чтение. Но мы ничего не писали? Это связано с тем, что по умолчанию система записала для нас нулевое значение, поэтому исходное содержимое перезаписывается. Итак, когда мы прочитали содержимое файла, мы обнаружили, что чтение было пустым.
Затем мы записываем файл и сразу же его читаем. На этот раз мы по-прежнему ничего не можем прочитать. Почему? Это потому, что дескриптор переместился в конец содержимого, когда мы впервые написали «хахахахахаха». Когда мы читаем его немедленно, дескриптор продолжает читать с последней позиции содержимого, так что ничего нет.
Наконец, после записи содержимого в файл отрегулируйте положение маркера, а затем прочтите содержимое в файле и обнаружите, что содержимое есть. Это потому, что мы использовали метод f.seek (0) для настройки дескриптора от конца содержимого к началу содержимого, чтобы снова было содержимое.

4) а +: читать и писать


Результаты приведены ниже:

Анализ результатов:
Используйте режим a + для записи содержимого в файл. Несомненно, это не проблема.
Затем, когда мы прочитаем содержимое указанного выше файла, мы обнаружим, что ничего нельзя прочитать. Это связано с тем, что когда вы открываете файл в режиме r +, дескриптор файла по умолчанию помещается в конец содержимого, поэтому вы можете напрямую читать содержимое, и ничего нет.
Наконец, перед чтением содержимого файла мы использовали метод f.seek (0), чтобы отрегулировать дескриптор от конца содержимого к началу содержимого, снова прочитать содержимое файла и найти Есть контент.

3. Разница между строками чтения, чтения и строки чтения.


1) Инструкция по использованию метода read ()


Результаты приведены ниже:

2) Инструкция по использованию метода readline ()


Результаты приведены ниже:

Удалите символ новой строки в конце каждой строки:


Результаты приведены ниже:

3) Инструкция по использованию метода readlines ()


Результаты приведены ниже:

4. Как эффективно просматривать содержимое файла размером 10 ГБ?

1) Связанные инструкции

Когда мы читаем содержимое файла, это эквивалентно чтению того, что записано на жестком диске, в память. Независимо от того, используете ли вы read () или readlines () для одновременного чтения в память или readline () для чтения всего содержимого в память построчно, если файл большой, это потребует много денег. ОЗУ. В то же время чтение содержимого файла с жесткого диска в память будет происходить очень медленно.
Итак, есть ли эффективный способ? Позволяет ли нам видеть содержимое файла, не занимая память? Мы объясним ниже.

2) Инструкция по эксплуатации


Некоторые скриншоты выглядят следующим образом:

Описание результата:
В приведенном выше методе f эквивалентен итератору, и мы используем цикл for для итерации элементов в f. Каждый цикл эквивалентен считыванию строки в память и запоминанию прочитанной на этот раз позиции. При выполнении следующей итерации содержимое, прочитанное в памяти в последний раз, будет уничтожено, а содержимое, прочитанное в текущей памяти, будет содержимым второй строки. При выполнении третьего цикла содержимое второй строки в памяти также будет уничтожено.В это время в памяти будет сохранено только содержимое третьей строки и так далее по порядку. До последнего цикла считывается содержимое последней строки, в это время в памяти остается только содержимое последней строки.
У итератора есть особенность: каждый раз, когда он повторяется, он запоминает текущую позицию чтения. При выполнении следующей итерации предыдущее содержимое будет уничтожено, и только содержимое, полученное в текущем цикле, будет сохранено в памяти.

В Python есть несколько способов прочитать текстовый файл. В этой статье мы рассмотрим функцию open() , методы read() , readline() , readlines() , close() и ключевое слово with .

Как открыть текстовый файл в Python с помощью open()

Если вы хотите прочитать текстовый файл с помощью Python, вам сначала нужно его открыть.

Вот так выглядит основной синтаксис функции open() :

Имена файлов и правильные пути

Если текстовый файл, который нужно открыть, и ваш текущий файл находятся в одной директории (папке), можно просто указать имя файла внутри функции open() . Например:

На скрине видно, как выглядят файлы, находящиеся в одном каталоге:


Но если ваш текстовый файл находится в другом каталоге, вам необходимо указать путь к нему.

В этом примере файл со случайным текстом находится в папке, отличной от той, где находится файл с кодом main.py:


В таком случае, чтобы получить доступ к этому файлу в main.py, вы должны включить имя папки с именем файла.

Таким образом, чтобы указать путь к файлу правильно, важно отслеживать, в каком каталоге вы находитесь.

Необязательный параметр режима в open()

При работе с файлами существуют разные режимы. Режим по умолчанию – это режим чтения.

Он обозначается буквой r .

Вы также можете опустить mode= и просто написать «r» .

Существуют и другие типы режимов, такие как «w» для записи или «a» для добавления. Мы не будем вдаваться в подробности о других режимах, потому что в этой статье сосредоточимся исключительно на чтении файлов.

Полный список других режимов можно найти в документации.

Дополнительные параметры для функции open() в Python

Функция open() может также принимать следующие необязательные параметры:

  • buffering
  • encoding
  • errors
  • newline
  • closefd
  • opener

Если вы хотите узнать больше об этих опциональных параметрах, можно заглянуть в документацию.

Марк Лутц «Изучаем Python»

Скачивайте книгу у нас в телеграм

Метод readable(): проверка доступности файла для чтения

Если вы хотите проверить, можно ли прочитать файл, используйте метод readable() . Он возвращает True или False .

Следующий пример вернет True , потому что мы находимся в режиме чтения:

Если бы мы изменили этот пример на режим «w» (для записи), тогда метод readable() вернул бы False :

Что такое метод read() в Python?

Метод read() будет считывать все содержимое файла как одну строку. Это хороший метод, если в вашем текстовом файле мало содержимого .

В этом примере давайте используем метод read() для вывода на экран списка имен из файла demo.txt:

Запустим этот код и получим следующий вывод:

Этот метод может принимать необязательный параметр, называемый размером. Вместо чтения всего файла будет прочитана только его часть.

Если мы изменим предыдущий пример, мы сможем вывести только первое слово, добавив число 4 в качестве аргумента для read() .

Если аргумент размера опущен или число отрицательное, то будет прочитан весь файл.

Что такое метод close() в Python?

Когда вы закончили читать файл, необходимо его закрыть. Если вы забудете это сделать, это может вызвать проблемы и дальнейшие ошибки.

Вот пример того, как закрыть файл demo.txt:

Как использовать ключевое слово with в Python

Один из способов убедиться, что ваш файл закрыт, – использовать ключевое слово with . Это считается хорошей практикой, потому что файл закрывается не вручную, а автоматически. Более того, это просто крайне удобно и защищает вас от ошибок, которые могут возникнуть, если вы случайно забудете закрыть файл.

Давайте попробуем переписать наш пример, используя ключевое слово with :

Что такое метод readline() в Python?

Этот метод читает одну строку из файла и возвращает ее.

В следующем примере у нас есть текстовый файл с двумя предложениями:

Если мы воспользуемся методом readline() , он выведет нам только первое предложение нашего файла.

Этот метод также принимает необязательный параметр размера. Мы можем изменить наш пример, добавив число 7. В таком случае программа считает и выведет нам только фразу This is :

Что такое метод readlines() в Python?

Этот метод читает и возвращает список всех строк в файле.

Предположим, у нас есть текстовый файл demo.txt со списком покупок:

В следующем примере давайте выведем наши продукты в виде списка с помощью метода readlines() .

Как прочитать текстовый файл при помощи цикла for

В качестве альтернативы методам чтения можно использовать цикл for .

Давайте распечатаем все элементы файла demo.txt, перебирая объект в цикле for .

Запустим наш код и получим следующий результат:

Заключение

Итак, если вы хотите прочитать текстовый файл в Python, вам сначала нужно его открыть.

Если текстовый файл и ваш текущий файл, где вы пишете код, находятся в одной директории, можно просто указать имя файла в функции open() .

Если ваш текстовый файл находится в другом каталоге, вам необходимо указать правильный путь к нему.

Функция open() принимает необязательный параметр режима. Режим по умолчанию – чтение ( «r» ).

Чтобы проверить, можно ли прочитать текстовый файл, вы можете использовать метод readable() . Он возвращает True , если файл можно прочитать, или False в противном случае.

Метод read() будет читать все содержимое файла как одну строку.

Также, когда вы закончите читать файл, не забудьте закрыть его. Один из способов убедиться, что ваш файл закрыт, – использовать ключевое слово with . Оно закрывает файл автоматически и вам не нужно беспокоиться об этом.

Метод readline() будет считывать только одну строку из файла и возвращать ее.

Метод readlines() прочитает и вернет все строки в файле в виде списка.

Также для чтения содержимого файлов можно использовать цикл for .

Надеемся, вам понравилась эта статья. Желаем удачи в вашем путешествии по миру Python!


Адаптированный перевод статьи Мелиссы Чу о том, как улучшить качество чтения.

Природа книги эволюционировала. Общество и технологии стали другими. Под воздействием нового образа жизни подход к чтению поменялся. К лучшему или худшему?

Сегодня одна и та же информация может быть представлена ​​в самых разных форматах. Когда речь заходит о том, как именно мы должны читать, мнения расходятся.

Эффективность скорочтения

С 1950-х годов скорочтение рекламировалось как эффективный способ быстрого освоения материала. Ученые, психологи и учителя придумали методы повышения скорости чтения с помощью ручных инструментов или движения глаз.

На чемпионате мира по скорочтению лучшие участники достигают скорости 1000–2000 слов в минуту. Шестикратная чемпионка Энн Джонс читает за 60 секунд 4200 слов. Эти результаты кажутся феноменальными по сравнению со средними возможностями взрослого человека, который продвигается по тексту на 300 слов в минуту.

Популярные методы в скорочтении:

  1. Скимминг — быстрое пробегание по тексту глазами, чтобы вычленить основные моменты. Вы не прочитываете тщательно каждое слово, а наскоро просматриваете первый и последний абзацы, заголовки и выделенные фрагменты, чтобы найти ключевые идеи. Сканирование — аналогичный метод — предусматривает беглый просмотр текста, чтобы найти определенные слова и фразы.
  2. Мета-ориентирование (meta-guiding) использует указатель: палец или ручку, — чтобы направлять глаза вдоль строчек. Это помогает глазам двигаться горизонтально, фокусируясь на слове, которое вы читаете.
  3. Метод зрительного интервала (visual span) использует диапазон зрения, чтобы читать слова блоками. Человек фокусируется на одном центральном слове, а чтобы увидеть соседние, привлекает периферийное зрение. Считается, что оно помогает читать по пять слов единовременно.
  4. Быстрое последовательное визуальное представление (RSVP) — современный метод. Он использует программу для чтения, которая показывает слова по одному. Вы можете выбрать скорость, с которой они будут отображаться на экране.

Автор книги “Psychology of Reading” («Психология чтения»), Кейт Райнер, отклоняет методы скорочтения. Он объясняет, что мы ограничены анатомией глаз и способностью мозга обрабатывать информацию. Для экономии времени часть методов основана на субвокализации — прекращении мысленного озвучивания слов. Райнер утверждает, что при скорочтении уровень запоминания и понимания прочитанного значительно уменьшается.

Участники чемпионатов мира демонстрируют уровень понимания прочитанного около 50%. У Энн Джонс этот показатель составляет 67%.

Независимо от используемого метода скорочтения понимание всегда приносится в жертву скорости.

Это не всегда плохо — зависит от того, что именно вы читаете. Если просматриваете сухую документацию, чтобы понять ключевые моменты, есть смысл использовать скимминг. Метод RSVP работает, когда знакомишься с коротким и легким для понимания разделом книги. Автор предпочитает читать с пером, используя его в качестве указателя для глаз.

Но бессмысленно использовать методы скорочтения, если перед вами сложный материал или книга, над которой хочется размышлять и смаковать каждую главу.

Выбор формата

Раньше был доступен только один вариант — бумажные издания. Сегодня мы можем читать, смотреть или слушать книги. Выбор рождает вопросы о том, как нам следует изучать материалы и чем одни форматы лучше других.

Бумажные книги. Согласно исследованиям, они обладают рядом преимуществ перед другими форматами. Когда физически перелистываешь страницы, отчетливее чувствуешь прогресс в чтении. Тактильные ощущения также способствуют лучшему запоминанию материала. Бумажные книги помогают заснуть, потому что — в отличие от электронных устройств — не излучают синий свет.

Многие предпочитают традиционные книги. Людям нравится чувствовать бумагу. Мягкий запах, вес книги и возможность листать страницы делают чтение еще приятнее. Однако бумажные издания бывают тяжелыми и неудобными для перевозки.

Электронные книги (ридеры). Их основное преимущество — удобство. Нет разницы, сколько вы несете книг: одну или сто. Это помогает в путешествиях, особенно если хотите почитать побольше. Электронные книги понятны для пользователей, потому что мы привыкли к гаджетам, таким как смартфоны и планшеты.

Однако эффект синего света — большая проблема для читателей. Исследователи обнаружили, что люди, которые предпочитают электронные книги, дольше засыпают. У тех, кто читает на планшетах, ноутбуках, смартфонах и ридерах, снижается уровень мелатонина — гормона, который увеличивается по вечерам, вызывая сонливость. В результате они плохо спят и просыпаются уставшими.

Хорошо, что есть исключения — Amazon Kindle. Эти устройства придают свечение самому экрану для лучшей видимости текста, а не слепят читателя. Такое освещение напоминает лампу, направленную на бумажную книгу.

Аудиокниги. Некоторые относятся к ним скептически, считая, что прослушивание книг не дает такого же погружения, как чтение. Однако в исследовании отмечается, что люди воспринимают информацию на слух так же, как визуально. (Отдельная тема для обсуждения — являются ли прослушивание и чтение полностью эквивалентными.) В некоторых случаях тон рассказчика даже помогает лучше понять смысл.

Однако проблема в том, что люди склонны к многозадачности. Если одновременно слушать книгу и писать e-mail или готовить, смысл может потеряться. Лично автору нравится слушать аудиокниги, когда ее меньше всего отвлекают: в очереди или во время прогулки.

В последнее время аудиокниги стали популярными. Некоторые слушают их на скорости в два-три раза быстрее, чем в оригинальной записи. Хотя они утверждают, что информация не теряется, стоит задуматься, следовать ли их примеру при изучении материала.

Книга — это не просто коробка, которую мы открываем, чтобы проверить содержимое. Ее изучение — это опыт: информацию надо впитывать, размышлять над ней и давать выход в виде новых знаний. Мы получаем идеи из книг во время пауз при чтении — так же, как креативные мысли рождаются в спокойные периоды.

Чтение сегодня

По мере того как информация «оцифровывается», книги становятся доступнее. У нас под рукой бесчисленные варианты досуга. Стали ли книги в таких условиях более привлекательными?

Согласно опросу в Японии, чем больше времени люди тратят на смартфоны, тем меньше — на чтение: 53% респондентов не познакомились ни с одной новой книгой за последний месяц. Такая ситуация прослеживается в течение пяти лет.

Другое исследование показало, что объем чтения увеличивается с 17 до 21% после праздников, потому что людям часто дарят планшеты и ридеры. В прошлом году примерно 43% взрослых американцев предпочитали так называемый «длинный контент»: книги, журналы или лонгриды. В среднем пользователи ридеров прочли за год 24 книги. Любители бумажных страниц — 15 произведений.

Изменились условия и обстоятельства чтения. Люди открывают книги, когда у них есть свободная минута: в дороге или между задачами. Все чаще чтению отводится время во время просмотра телевизора или интернет-серфинга.

Мы зачастую знакомимся с текстами урывками, поэтому выгоды от «глубокого чтения» теряются. Длительное и вдумчивое уединение с книгой доставляет удовольствие, потому что вводит в состояние, подобное гипнотическому трансу. Интересно, что скорость освоения текста фактически замедляется. Но при «глубоком чтении» человек быстрее расшифровывает слова, у него обостряется понимание написанного, устанавливается связь с автором.

4 совета для эффективного чтения

В идеале мы читали бы непрерывно в течение нескольких часов при мягком освещении и без отвлекающих факторов. К сожалению, у большинства из нас нет такой ежедневной роскоши.

Вот четыре решения для максимально эффективного чтения:

Выберите подходящие форматы материалов для чтения в разных ситуациях
Классифицируйте их под время и место. Откладывайте статьи и заметки, чтобы прочитать их в короткие свободные периоды. Книги, требующие меньше внимания, слушайте в аудиоформате. Сложный для чтения материал откладывайте, пока у вас не появится достаточно времени для вдумчивого изучения.

Сделайте чтение повседневной привычкой
Когда автор стала постоянно читать, смогла:

  • повысить уровень творчества;
  • применить полученные знания в работе;
  • открыть новые темы и интересы;
  • рассмотреть идеи с другой точки зрения;
  • развить эмпатию, понимание людей и ситуаций;
  • испытать приятное ожидание чтения;
  • создать ежедневное ощущение стабильности;
  • научиться снимать стресс и расслабляться, повысить качества сна.

Оптимальное время для чтения — раннее утро или вечер перед сном. Конечно, вы можете выбрать другие варианты, но для автора эти два идеальны.

Легкий способ сделать чтение привычкой — положить книгу на прикроватный столик, чтобы она стала одной из первых вещей, которую вы видите сразу после пробуждения и перед сном. Если вас утомляет чтение, выбирайте легкий материал.

Поделитесь прочитанным
Если вы только что прочитали книгу, поделитесь ею с теми, кому она тоже может понравиться (вот список любимых произведений автора). И если кто-то с похожими предпочтениями порекомендует книгу, почему бы вам ее не прочесть?

Чтение одних книг сближает, как если бы вы путешествовали или смотрели фильм вместе. Коллективное обсуждение помогает лучше понять и оценить прочитанное.

Подумайте о чтении
Автору не нравится просто сканировать книгу и переходить к следующей. Когда она читает подобным образом, обнаруживает, что результаты чтения теряются. Поэтому она использует другие методы, чтобы запомнить прочитанное:

  • набросать заметку: если в книге есть интересные факты, автор рассказывает о них, пишет аннотацию или копирует значимые абзацы;
  • написать статью: иногда автор готовит статью, описывающую события из книги, добавляет размышления и основные выжимки;
  • посмотреть экранизацию: по популярным романам часто снимают фильмы. Автору нравится смотреть экранизации: сравнивать собственную интерпретацию книги с другим видением, переживать ключевые события и наслаждаться произведением в другом формате.

Традиционные книги уступают место новым форматам. Вместе с формой меняется и подход к чтению. Мы сокращаем деятельность до небольших задач, чтобы успевать больше. Адаптируйте чтение в таком же ключе — ведь мы не властны над временем, но можем изменить подход к его использованию.

Читайте также: