Python переместить файл в другую папку

Обновлено: 04.07.2024

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

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

Создание файлов в Python

Режимы открытия файлов

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

Давайте рассмотрим некоторые возможные комбинации режимов файлов:

  • w : открывает файл для записи и создает новый файл, если он еще не существует. Если файл существует, он перезаписывает его.
  • w+ : открывает файл для записи, а также для чтения и создания, если он не существует. Если файл уже существует, он перезаписывается.
  • r : открывает файл только для чтения.
  • rb : открывает файл для чтения в двоичном формате.
  • wb : открывает файл для записи в двоичном формате.
  • wb+ : открывает файл для записи и чтения в двоичном формате.
  • a : открывает файл для добавления в конец файла.
  • + : обычно этот символ используется рядом с r , w или a и означает как запись, так и чтение.

Если режим файла не указан, по умолчанию используется r.

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

Как и почти все в Python, выполнение многих задач, связанных с файлами, очень просто. Например, создать файл в Python можно одной строкой кода:

В приведенном выше примере мы открыли файл "new.txt" для чтения и записи. В нашем случае, поскольку файл еще не существует, он создается автоматически.

Метод open() принимает множество аргументов, хотя в большинстве случаев вы будете использовать только эти два:

  • имя файла — обязательное поле для указания имени файла, который мы хотим открыть/создать. В нашем примере "new.txt"
  • mode – необязательный аргумент для указания режима открытия файла, в нашем примере "w+"

Вы можете опустить второй аргумент, и в этом случае Python будет воспринимать его как r .

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

закрыть()

Когда вы открываете файл, вам всегда нужно убедиться, что вы также закрываете его. Это можно сделать с помощью метода close() файлового объекта или открыть его с помощью ключевого слова with, которое предоставляет Python, которое автоматически закрывает его, когда он выходит за рамки. После закрытия файла он больше не будет доступен для чтения или записи в вашем коде, пока вы не откроете его снова.

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

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

Перемещение файлов в Python

Чтобы переместить файл в Python, нам потребуется импортировать модули os и Shutil, которые дают нам возможность копировать, перемещать и удалять файлы в Python. Оба этих модуля предоставляют методы для этого, хотя во многих случаях модуль Shutil предлагает более удобные методы.

Бесплатная электронная книга: Git Essentials

Ознакомьтесь с нашим практическим руководством по изучению Git, включающим передовые практики, общепринятые стандарты и памятку. Перестаньте гуглить команды Git и на самом деле изучите их!

Имейте в виду, что для работы этого примера каталог назначения должен существовать. После того, как вы настроили каталоги «d1» и «d2» (или просто изменили пример, чтобы он соответствовал вашей структуре каталогов), запустите код. Теперь проверьте каталог "d2", и вы должны увидеть файл xfile.txt, если он уже присутствует в этом каталоге.

Довольно просто, правда?

Удаление файлов в Python

Как вы, наверное, догадались, в Python довольно легко удалить файл с помощью метода remove() из модуля os.

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

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

Используйте функцию Shutil.move() для перемещения файлов в Python

Модуль Shutil – это модуль Python, помогающий выполнять высокоуровневые манипуляции с файлами или наборами файлов. Этот модуль используется в таких операциях, как копирование файла откуда-либо или удаление файла.

Для перемещения файла из одного каталога в другой с помощью модуля Shutil вызывается функция Shutil.move().

Здесь используется функция listdir() из модуля os, которая используется для получения полного списка всех файлов, присутствующих в каталоге. Мы используем цикл for для перемещения файла и заметим, что функция move() модуля Shutil используется для переноса файлов из одного каталога в другой.

Используйте функции os.rename() или os.replace() для перемещения файлов в Python

Часто пользователю необходимо подключиться к основной системе через Python. В этом случае в игру вступает модуль os. Модуль os в основном действует как посредник между пользователем и операционной системой компьютера, чтобы пользователь мог правильно подключиться к операционной системе.

Одной из функций этого модуля является модуль rename(), используемый для перемещения файлов из одного места в другое. Эта функция перемещает файлы, переименовывая имя каталога этих файлов.

Еще одна функция этого модуля — функция replace(). Эта функция помогает переименовать файл или текущий каталог. Местом назначения должен быть файл, а не каталог. Таким образом, если целью является файл, он будет заменен без ошибок.

В заключение, когда конечный пункт назначения файла находится на том же диске, откуда он был получен, используется функция rename(). И если место назначения файла должно быть изменено, необходимо использовать replace().

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

Использование модуля pathlib для перемещения файлов в Python

Модуль pathlib в Python — это стандартный модуль, используемый для предоставления объекта, используемого для управления различными файлами и словарями. Основной объект для работы с файлами называется Path.

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

Статья по теме — файл Python

Статья по теме — Словарь Python


сообщить об этом объявлении

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

Кроме того, вы можете использовать этот шаблон для перемещения каталога:

Теперь давайте рассмотрим несколько примеров с инструкциями по перемещению файла или каталога в Python.

Шаги по перемещению файла в Python

Шаг 1. Сохраните исходный путь

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

Например, предположим, что файл CSV хранится в папке с именем Test_ 1 :

Где имя файла — «my_csv_file», а расширение файла — csv.

Шаг 2. Зафиксируйте целевой путь

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

В нашем примере давайте переместим файл CSV в папку с именем Test_ 2 :

Шаг 3. Переместите файл с помощью Python

Теперь вы можете использовать этот шаблон для перемещения файла в нужное место:

Обязательно поместите символ «r» перед каждым из ваших путей, чтобы избежать следующей ошибки:

Кодек unicodeescape не может декодировать байты в позициях 2–3: усеченный экран \UXXXXXXXX

В нашем примере код для перемещения CSV-файла из исходного местоположения (т. е. Test_ 1 ) в целевое расположение (т. е. Test_ 2 ) выглядит следующим образом:

После запуска кода на Python (с учетом ваших путей) файл CSV будет перемещен в папку Test_2.

Переименовать файл при перемещении

Кроме того, вы можете переименовать файл при его перемещении в нужное место.

Например, предположим, что новый файл JPG хранится в папке Test_1 (где имя файла — изображение).

Приведенный ниже код затем можно использовать для перемещения файла (с исходным именем файла «изображение») в целевое расположение с новым именем файла («новое_изображение»):

Файл с новым именем должен появиться в папке Test_2.

Переместить каталог с помощью Python

До сих пор вы видели, как переместить файл в Python.

Кроме того, вы можете переместить каталог, используя этот шаблон (без указания расширения файла):

Например, предположим, что новый каталог был добавлен в расположение Test_1, где имя каталога — my_folder.

Поэтому для перемещения каталога в целевое расположение Test_2 можно использовать следующий код:

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

Именно здесь на помощь приходит функция shutil.move(). Функция shutil.move() позволяет перемещать файл из одной папки в другую в вашей системе. . В этом руководстве со ссылками на примеры будет обсуждаться, как можно использовать функцию shutil.move() для перемещения кода.

Шутил Python

Модуль Shutil предоставляет широкий спектр высокоуровневых операций, которые вы можете выполнять с файлами. В отличие от библиотеки os, Shutil поставляется с функциями, которые можно выполнять для наборов файлов.

В этом руководстве мы сосредоточимся на функции shutil.move(), которая позволяет нам перемещать файл с помощью Python.

Прежде чем мы изучим функцию move(), мы должны сначала импортировать в наш код библиотеку Shutil. Мы можем сделать это, используя этот оператор импорта Python:

Переместить файл Python

Функция shutil.move() перемещает файл на вашем компьютере. Этот метод принимает в качестве аргументов путь к файлу, который вы хотите переместить, и новый путь к файлу.

Синтаксис этой функции следующий:

81 % участников заявили, что стали более уверенными в своих перспективах работы в сфере технологий после посещения учебного курса. Примите участие в тренировочном лагере сегодня.

Найдите подходящий вариант для буткемпа

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

Начните сменить профессию сегодня

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

Функция move() возвращает путь к файлу, который вы переместили.

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

Указываемые вами пути к файлам могут быть как абсолютными, так и относительными.

Абсолютные пути к файлам – это полные пути, ведущие непосредственно к файлу (например, /home/career_karma/file.txt). Относительный путь к файлу относится к расположению относительно каталога, в котором выполняется ваша программа Python (например, file.txt).

Если вы укажете несуществующий каталог назначения, будет создан новый каталог.

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