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

JES — это программная среда, в которой можно писать, тестировать и запускать код локально на компьютере. В ней есть функции для редактирования изображений и видео, а также утилиты для работы с файлами: чтения, записи и базовой обработки данных.
В этом руководстве вы найдёте:
- пошаговые примеры чтения и записи файлов (TXT и CSV);
- советы по парсингу CSV в двумерные массивы;
- шаблоны и контрольные списки для разработчика, преподавателя и ученика;
- альтернативы (Pandas, openpyxl) и ситуации, где они предпочтительнее;
- краткую справку по безопасности и конфиденциальности данных.
Важно: примеры используют встроенные функции JES (например, pickAFile()). Код остаётся совместимым с JES и простыми установками Python‑подобной среды.
Обзор подхода
Кратко: открыть файл → прочитать содержимое → обработать строку или CSV → закрыть файл. Если нужно работать со строками по отдельным строкам — разбивайте по символу новой строки. Для CSV разбивайте каждую строку по запятым и при необходимости переводите значения в числа.
Определение терминов (в одну строку):
- CSV — текстовый файл, где значения разделены запятыми; строки соответствуют записям, столбцы — полям.
Как читать файл в JES
Вы можете просмотреть и скачать полный исходный код примеров в репозитории GitHub (при наличии).
Общая идея: сначала вызвать диалог выбора файла, затем открыть файл в режиме чтения, считать всё содержимое в строковую переменную, обработать и закрыть файл.
- Откройте JES и создайте новую функцию в окне программирования:
def readFromFile():- Запросите путь к файлу у пользователя с помощью pickAFile():
file = pickAFile()- Проверьте, что пользователь выбрал файл с расширением .txt или .csv:
if not file.endswith(".txt") and not file.endswith(".csv"):
print("Error: Only .txt and .csv files are supported.")
returnВажное замечание: этот простой фильтр по расширению полезен для начальной валидации, но нельзя полагаться на расширение как на единственный признак формата. Если важна надёжная валидация, читайте заголовок файла или выполняйте попытку парсинга с обработкой исключений.
- Откройте выбранный файл в режиме чтения:
openedFile = open(file, "rt")Здесь “rt” означает read text (читать как текст). В других окружениях можно встретить “r” и указание кодировки (например, encoding=”utf-8”). Если JES поддерживает передачу кодировки — указывайте её при необходимости.
- Считайте всё содержимое и сохраните в переменную:
allContent = openedFile.read()- Закройте файл:
openedFile.close()- Теперь allContent содержит одну строку со всем текстом; строки разделены символом “\n”. Чтобы получить массив строк:
if file.endswith(".txt"):
rows = allContent.split("\n")
print(rows)- Для 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()).
- Для теста создайте 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Создайте numbers.csv с числовыми значениями. Пример иллюстрации CSV:
В интерфейсе JES нажмите кнопку Load Program, которая находится между окном программирования и командной строкой.
Запустите функцию в командной строке:
readFromFile()Через диалог выберите sample.txt. В консоли вы увидите массив строк:
Повторите для numbers.csv — в консоли появится двумерный массив с числовыми значениями:
Как записывать в файл в JES
JES поддерживает запись и добавление в текстовые и CSV‑файлы через write(). Откройте файл в режиме добавления (append) или записи (write) в зависимости от задачи.
- Создайте функцию writeToFile():
def writeToFile():- Запросите файл у пользователя:
file = pickAFile()- Откройте файл в режиме добавления (append text):
openedFile = open(file, "at")- Если нужно перезаписать файл полностью, используйте режим “w”:
openedFile = open(file, "w")- Запись в текстовый файл — используйте переносы строк:
if file.endswith(".txt"):
openedFile.write("\nTesting")
openedFile.write("\nTesting1\nTesting2")
openedFile.write("\nTesting3")- Запись в CSV — формируйте строки с разделителем-запятой:
if file.endswith(".csv"):
openedFile.write("\n12,34,56")- После записи закройте файл и сообщите об успехе:
openedFile.close()
print("Wrote to file successfully")- Загрузите программу через Load Program и запустите:
writeToFile()Выберите sample.txt и проверьте, что новые строки добавились:
Повторите для numbers.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(‘,’) — только для простых случаев.
- Для больших данных — читать по строкам или использовать потоковую обработку.
Мини‑методология для проекта, где используются файлы
- Определить форматы входных и выходных файлов.
- Написать модуль для валидации формата и кодировки.
- Реализовать чтение/запись с обработкой ошибок.
- Написать тесты на граничные случаи (пустые строки, нечисловые символы в числовых полях, большие файлы).
- Задокументировать SOP по резервному копированию перед перезаписью.
Безопасность и конфиденциальность
- Если файлы содержат персональные данные, примените минимизацию: сохраняйте только необходимые поля.
- Защитите доступ к рабочей директории и ограничьте права файловой системы.
- В рабочем процессе документируйте, где и какие данные сохраняются, и кто имеет к ним доступ (важно для соответствия локальным требованиям по защите данных).
Краткая инструкция по тестированию (acceptance)
- Тест 1: readFromFile() корректно возвращает массив строк для sample.txt.
- Тест 2: readFromFile() корректно парсит numbers.csv в двумерный список чисел.
- Тест 3: writeToFile() в режиме “a” добавляет строки в конец файла.
- Тест 4: writeToFile() в режиме “w” перезаписывает файл полностью.
Сводка
Работа с файлами в JES проста и подходит для небольших проектов и образовательных задач. Для промышленного использования и анализа больших объёмов данных стоит переходить на специализированные библиотеки: csv, pandas, openpyxl. Всегда закрывайте файлы, валидируйте вход и защищайте конфиденциальную информацию.
Примечание: изучите встроенную справку JES по функциям вроде pickAFile(), open() и write(), чтобы убедиться в тонкостях реализации в вашей версии среды.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone