Вопрос проверяет понимание базовых операций ввода-вывода и работы с файловой системой, что необходимо для создания скриптов автоматизации или обработки данных.
Копирование файла — фундаментальная операция в программировании, используемая для резервного копирования, обработки данных или перемещения информации между директориями. Реализация зависит от языка и среды выполнения, но общий принцип заключается в открытии исходного файла для чтения, чтении его содержимого (часто потоково, чтобы избежать перегрузки памяти) и записи прочитанных данных в целевой файл.
В Node.js для работы с файлами используется встроенный модуль fs (File System). Самый простой способ — использовать асинхронный метод fs.copyFile.
const fs = require('fs').promises;
async function copyFile(source, destination) {
try {
await fs.copyFile(source, destination);
console.log('Файл успешно скопирован');
} catch (error) {
console.error('Ошибка при копировании:', error);
}
}
copyFile('source.txt', 'destination.txt');Для больших файлов или более тонкого контроля можно использовать потоки (streams), что позволяет копировать файл по частям, не загружая его целиком в оперативную память.
В Python стандартная библиотека предоставляет модуль shutil, который содержит высокоуровневые функции для операций с файлами, включая копирование.
import shutil
try:
shutil.copy('source.txt', 'destination.txt')
print("Файл успешно скопирован")
except IOError as e:
print(f"Ошибка ввода-вывода: {e}")Функция shutil.copy автоматически обрабатывает как текстовые, так и бинарные файлы. Для копирования метаданных (например, прав доступа) существует функция shutil.copy2.
Вывод: Используйте встроенные высокоуровневые функции (fs.copyFile в Node.js, shutil.copy в Python) для большинства задач, так как они эффективны и просты. При работе с очень большими файлами или необходимости мониторинга прогресса стоит рассмотреть потоковый подход.
Уровень
Рейтинг:
2
Сложность:
2
Навыки
JavaScript
Node.js
Ключевые слова
Подпишись на Java Developer в телеграм