Гид по технологиям

Чтение и запись файлов в JES

6 min read Программирование Обновлено 03 Jan 2026
Чтение и запись файлов в JES
Чтение и запись файлов в JES

Стопка бумажных файлов в офисе

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

В этом руководстве вы найдёте:

  • пошаговые примеры чтения и записи файлов (TXT и CSV);
  • советы по парсингу CSV в двумерные массивы;
  • шаблоны и контрольные списки для разработчика, преподавателя и ученика;
  • альтернативы (Pandas, openpyxl) и ситуации, где они предпочтительнее;
  • краткую справку по безопасности и конфиденциальности данных.

Важно: примеры используют встроенные функции JES (например, pickAFile()). Код остаётся совместимым с JES и простыми установками Python‑подобной среды.

Обзор подхода

Кратко: открыть файл → прочитать содержимое → обработать строку или CSV → закрыть файл. Если нужно работать со строками по отдельным строкам — разбивайте по символу новой строки. Для CSV разбивайте каждую строку по запятым и при необходимости переводите значения в числа.

Определение терминов (в одну строку):

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

Как читать файл в JES

Вы можете просмотреть и скачать полный исходный код примеров в репозитории GitHub (при наличии).

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

  1. Откройте JES и создайте новую функцию в окне программирования:
def readFromFile():
  1. Запросите путь к файлу у пользователя с помощью pickAFile():
file = pickAFile()
  1. Проверьте, что пользователь выбрал файл с расширением .txt или .csv:
if not file.endswith(".txt") and not file.endswith(".csv"):
    print("Error: Only .txt and .csv files are supported.")
    return

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

  1. Откройте выбранный файл в режиме чтения:
openedFile = open(file, "rt")

Здесь “rt” означает read text (читать как текст). В других окружениях можно встретить “r” и указание кодировки (например, encoding=”utf-8”). Если JES поддерживает передачу кодировки — указывайте её при необходимости.

  1. Считайте всё содержимое и сохраните в переменную:
allContent = openedFile.read()
  1. Закройте файл:
openedFile.close()
  1. Теперь allContent содержит одну строку со всем текстом; строки разделены символом “\n”. Чтобы получить массив строк:
if file.endswith(".txt"):
    rows = allContent.split("\n")
    print(rows)
  1. Для CSV: сначала разбейте по строкам, затем каждую строку — по запятой. Часто удобно получить двумерный список (список списков):
if file.endswith(".csv"):
    rows = allContent.split("\n")
    csvData = []

    for row in rows:
        if (row != ''):
            cells = row.split(",")
            csvData.append([float(cell) for cell in cells])

    print(csvData)

Примечание: пример выше преобразует ячейки в float. Если данные содержат пустые строки, текстовые значения или нетипичные символы, добавьте обработку исключений (try/except) и нормализацию строки (strip()).

  1. Для теста создайте sample.txt и заполните его простыми строками:
This is the start of the file
This is another line
This is the third line
This is the end of the file
  1. Создайте numbers.csv с числовыми значениями. Пример иллюстрации CSV: Пример CSV‑файла с данными

  2. В интерфейсе JES нажмите кнопку Load Program, которая находится между окном программирования и командной строкой. Кнопка Load Program в интерфейсе JES

  3. Запустите функцию в командной строке:

readFromFile()
  1. Через диалог выберите sample.txt. В консоли вы увидите массив строк: Результат в консоли: каждая строка текстового файла как элемент массива

  2. Повторите для numbers.csv — в консоли появится двумерный массив с числовыми значениями: Результат в консоли: ячейки Excel как двумерный массив

Как записывать в файл в JES

JES поддерживает запись и добавление в текстовые и CSV‑файлы через write(). Откройте файл в режиме добавления (append) или записи (write) в зависимости от задачи.

  1. Создайте функцию writeToFile():
def writeToFile():
  1. Запросите файл у пользователя:
file = pickAFile()
  1. Откройте файл в режиме добавления (append text):
openedFile = open(file, "at")
  1. Если нужно перезаписать файл полностью, используйте режим “w”:
openedFile = open(file, "w")
  1. Запись в текстовый файл — используйте переносы строк:
if file.endswith(".txt"):
    openedFile.write("\nTesting")
    openedFile.write("\nTesting1\nTesting2")
    openedFile.write("\nTesting3")
  1. Запись в CSV — формируйте строки с разделителем-запятой:
if file.endswith(".csv"):
    openedFile.write("\n12,34,56")
  1. После записи закройте файл и сообщите об успехе:
openedFile.close()
print("Wrote to file successfully")
  1. Загрузите программу через Load Program и запустите:
writeToFile()
  1. Выберите sample.txt и проверьте, что новые строки добавились: Результат записи в текстовый файл

  2. Повторите для numbers.csv и проверьте добавленные значения: Результат записи в CSV

Важно: при записи в файл в режиме “w” содержимое перезаписывается — используйте этот режим осознанно, чтобы случайно не потерять данные.

Частые ошибки и как их исправить

  • Проблема: файл остаётся открытым и блокируется. Решение: всегда закрывайте файл или используйте контекстный менеджер, если он поддерживается.
  • Проблема: неверная кодировка → некорректные символы. Решение: указывайте encoding=”utf-8” при открытии, если поддерживается.
  • Проблема: CSV содержит кавычки или запятые внутри полей. Решение: для надёжного парсинга используйте специализированный парсер CSV (в Python — модуль csv), но в простых демонстрациях можно применять split(‘,’) с предварительной нормализацией.
  • Проблема: пустые строки приводят к ошибкам преобразования типов. Решение: фильтруйте пустые строки и валидируйте ячейки перед приведением типов.

Когда этот подход не подойдёт (контрпримеры)

  • Большие файлы (> десятки мегабайт): чтение wholeContent = openedFile.read() потребует много памяти. Вместо этого читайте построчно в цикле.
  • Сложный CSV (кавычки, экранирование): простой split “,” даст неправильные результаты. Используйте csv.reader или Pandas.
  • Табличные файлы формата XLS/XLSX: нужен openpyxl или pandas.read_excel.

Альтернативные подходы

  • Pandas: удобна для анализа таблиц — pd.read_csv, pd.DataFrame.to_csv. Лучше при больших объёмах и для агрегаций.
  • csv модуль стандартной библиотеки Python: корректно обрабатывает кавычки и экранирование.
  • openpyxl / xlrd: для работы с Excel напрямую.

Ментальные модели и heuristics

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

Быстрый шаблон: чтение построчно (рекомендация для больших файлов)

openedFile = open(file, "rt")
for line in openedFile:
    process(line.strip())
openedFile.close()

Контрольные списки по ролям

Разработчик:

  • Проверить кодировку файлов.
  • Добавить обработку исключений и логирование.
  • Избегать чтения всего файла в память при больших объёмах.

Преподаватель:

  • Подготовить два файла: sample.txt и numbers.csv.
  • Предусмотреть задания по обработке данных и отлову ошибок.

Ученик/начинающий:

  • Использовать режимы “rt” и “at”.
  • Тренироваться на небольших файлах, чтобы увидеть результат сразу.

Факто‑бокс: ключевые советы

  • Режимы открытия: “r” / “rt” — читать; “w” — перезаписать; “a” / “at” — дописать.
  • Безопасность: всегда закрывать файл (close) или использовать менеджер контекста.
  • CSV: split(‘,’) — только для простых случаев.
  • Для больших данных — читать по строкам или использовать потоковую обработку.

Мини‑методология для проекта, где используются файлы

  1. Определить форматы входных и выходных файлов.
  2. Написать модуль для валидации формата и кодировки.
  3. Реализовать чтение/запись с обработкой ошибок.
  4. Написать тесты на граничные случаи (пустые строки, нечисловые символы в числовых полях, большие файлы).
  5. Задокументировать SOP по резервному копированию перед перезаписью.

Безопасность и конфиденциальность

  • Если файлы содержат персональные данные, примените минимизацию: сохраняйте только необходимые поля.
  • Защитите доступ к рабочей директории и ограничьте права файловой системы.
  • В рабочем процессе документируйте, где и какие данные сохраняются, и кто имеет к ним доступ (важно для соответствия локальным требованиям по защите данных).

Краткая инструкция по тестированию (acceptance)

  • Тест 1: readFromFile() корректно возвращает массив строк для sample.txt.
  • Тест 2: readFromFile() корректно парсит numbers.csv в двумерный список чисел.
  • Тест 3: writeToFile() в режиме “a” добавляет строки в конец файла.
  • Тест 4: writeToFile() в режиме “w” перезаписывает файл полностью.

Сводка

Работа с файлами в JES проста и подходит для небольших проектов и образовательных задач. Для промышленного использования и анализа больших объёмов данных стоит переходить на специализированные библиотеки: csv, pandas, openpyxl. Всегда закрывайте файлы, валидируйте вход и защищайте конфиденциальную информацию.

Примечание: изучите встроенную справку JES по функциям вроде pickAFile(), open() и write(), чтобы убедиться в тонкостях реализации в вашей версии среды.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство