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

В этом руководстве показано, как перемещать файлы из одного каталога в другой с помощью Python.
  1. Используйте функцию shutil.move() для перемещения файлов в Python
  2. Используйте функции os.rename() или os.replace() для перемещения файлов в Python
  3. Используйте модуль pathlib для перемещения файлов в Python

Перемещение файлов из одного каталога в другой с помощью Python

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

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

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

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

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

Пример:

import shutil
import os
 
file_source = 'Path/Of/Directory'
file_destination = 'Path/Of/Directory'
 
get_files = os.listdir(file_source)
 
for g in get_files:
    shutil.move(file_source + g, file_destination)

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

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

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

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

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

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

Пример:

import os
 
file_source = 'Path/Of/Directory'
file_destination = 'Path/Of/Directory'
 
get_files = os.listdir(file_source)
 
for g in get_files:
    os.replace(file_source + g, file_destination + g)

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

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

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

Пример:

from pathlib import Path
import shutil
import os

file_source ='Path/Of/Directory'
file_destination ='Path/Of/Directory'

for file in Path(file_source).glob('randomfile.txt'):
    shutil.move(os.path.join(file_source,file),file_destination)

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

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

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

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

Вывод текущей директории

Для получения текущего рабочего каталога используется os.getcwd():

import os

# вывести текущую директорию
print("Текущая деректория:", os.getcwd())

os.getcwd() возвращает строку в Юникоде, представляющую текущий рабочий каталог. Вот пример вывода:

Текущая деректория: C:python3bin

Создание папки

Для создания папки/каталога в любой операционной системе нужна следующая команда:

# создать пустой каталог (папку)
os.mkdir("folder")

После ее выполнения в текущем рабочем каталоге тут же появится новая папка с названием «folder».

Если запустить ее еще раз, будет вызвана ошибка FileExistsError, потому что такая папка уже есть. Для решения проблемы нужно запускать команду только в том случае, если каталога с таким же именем нет. Этого можно добиться следующим образом:

# повторный запуск mkdir с тем же именем вызывает FileExistsError, 
# вместо этого запустите:
if not os.path.isdir("folder"):
     os.mkdir("folder")

Функция os.path.isdir() вернет True, если переданное имя ссылается на существующий каталог.

Изменение директории

Менять директории довольно просто. Проделаем это с только что созданным:

# изменение текущего каталога на 'folder'
os.chdir("folder")

Еще раз выведем рабочий каталог:

# вывод текущей папки
print("Текущая директория изменилась на folder:", os.getcwd())

Вывод:

Текущая директория изменилась на folder: C:python3binfolder

Создание вложенных папок

Предположим, вы хотите создать не только одну папку, но и несколько вложенных:

# вернуться в предыдущую директорию
os.chdir("..")

# сделать несколько вложенных папок
os.makedirs("nested1/nested2/nested3")

Это создаст три папки рекурсивно, как показано на следующем изображении:

Создание вложенных папок

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

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

# создать новый текстовый файл
text_file = open("text.txt", "w")
# запить текста в этот файл
text_file.write("Это текстовый файл")

w значит write (запись), a — это appending (добавление данных к уже существующему файлу), а r — reading (чтение). Больше о режимах открытия можно почитать здесь.

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

С помощью модуля os достаточно просто переименовать файл. Поменяем название созданного в прошлом шаге.

# переименовать text.txt на renamed-text.txt
os.rename("text.txt", "renamed-text.txt")

Функция os.rename() принимает 2 аргумента: имя файла или папки, которые нужно переименовать и новое имя.

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

Функцию os.replace() можно использовать для перемещения файлов или каталогов:

# заменить (переместить) этот файл в другой каталог
os.replace("renamed-text.txt", "folder/renamed-text.txt")

Стоит обратить внимание, что это перезапишет путь, поэтому если в папке folder уже есть файл с таким же именем (renamed-text.txt), он будет перезаписан.

Список файлов и директорий

# распечатать все файлы и папки в текущем каталоге
print("Все папки и файлы:", os.listdir())

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

Все папки и файлы: ['folder', 'handling-files', 'nested1', 'text.txt']

А что если нужно узнать состав и этих папок тоже? Для этого нужно использовать функцию os.walk():

# распечатать все файлы и папки рекурсивно
for dirpath, dirnames, filenames in os.walk("."):
    # перебрать каталоги
    for dirname in dirnames:
        print("Каталог:", os.path.join(dirpath, dirname))
    # перебрать файлы
    for filename in filenames:
        print("Файл:", os.path.join(dirpath, filename))

os.walk() — это генератор дерева каталогов. Он будет перебирать все переданные составляющие. Здесь в качестве аргумента передано значение «.», которое обозначает верхушку дерева:

Каталог: .folder
Каталог: .handling-files
Каталог: .nested1
Файл: .text.txt
Файл: .handling-fileslisting_files.py
Файл: .handling-filesREADME.md
Каталог: .nested1nested2
Каталог: .nested1nested2nested3

Метод os.path.join() был использован для объединения текущего пути с именем файла/папки.

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

Удалим созданный файл:

# удалить этот файл
os.remove("folder/renamed-text.txt")

os.remove() удалит файл с указанным именем (не каталог).

Удаление директорий

С помощью функции os.rmdir() можно удалить указанную папку:

# удалить папку
os.rmdir("folder")

Для удаления каталогов рекурсивно необходимо использовать os.removedirs():

# удалить вложенные папки
os.removedirs("nested1/nested2/nested3")

Это удалит только пустые каталоги.

Получение информации о файлах

Для получения информации о файле в ОС используется функция os.stat(), которая выполняет системный вызов stat() по выбранному пути:

open("text.txt", "w").write("Это текстовый файл")

# вывести некоторые данные о файле
print(os.stat("text.txt"))

Вывод:

os.stat_result(st_mode=33206, st_ino=14355223812608232, st_dev=1558443184, st_nlink=1, st_uid=0, st_gid=0, st_size=19, st_atime=1575967618, st_mtime=1575967618, st_ctime=1575966941)

Это вернет кортеж с отдельными метриками. В их числе есть следующие:

    • st_size — размер файла в байтах
    • st_atime — время последнего доступа в секундах (временная метка)
    • st_mtime — время последнего изменения
    • st_ctime — в Windows это время создания файла, а в Linux — последнего изменения метаданных

Для получения конкретного атрибута нужно писать следующим образом:

# например, получить размер файла
print("Размер файла:", os.stat("text.txt").st_size)

Вывод:

Размер файла: 19

На этой странице больше об атрибутах.

Выводы

Работать с файлами и каталогами в Python очень просто. Не имеет значения даже используемая операционная система, хотя отдельные уникальные для системы функции можно использовать: например, os.chown() или os.chmod() в Linux. Более подробно эта тема освещена в официальной документации Python.

Содержание

  • Содержание папки
  • Работа с путями к файлам и папкам
  • Манипуляции с файлами и папками

Содержание папки

Модуль стандартной библиотеки os (от «operation system») предоставляет множество полезных функций для произведения системных вызовов. Одна из базовых функций этого модуля — os.listdir.

>>> import os

>>> file_list = os.listdir()  # список файлов и папок в директории, где запущена программа
>>> file_list = os.listdir('.')  # синоним
>>> file_list = os.listdir('C:/Users')  # список имен файлов и папок в данной папке

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

>>> import os

>>> unsorted_file_list = os.listdir()
>>> sortetd_file_list = sorted(unsorted_file_list)

Работа с путями к файлам и папкам

Модуль os содержит подмодуль os.path, который позволяет работать с путями файлов и папок. Импортировать этот модуль отдельно не нужно, достаточно выполнить import os.

Присоединение одной части пути к другой

Работа с путями к файлам и папкам как с простыми строками чревата множеством ошибок и может создать проблемы при переносе программы между различными операционными системами. Правильный путь объединить две части пути — это использование os.path.join:

>>> import os

>>> dirpath = '../books'
>>> # Здесь filename - имя файла, а не путь от места запуска программы до него:
>>> for filename in os.listdir(dirpath):
...     # filepath = dirname + filename - сработает неправильно, так как будет не хватать "/"
...     filepath = os.path.join(dirname, filename)  # поставит "/" или "" за нас
...     with open(filepath, encoding='utf-8') as fd:
...         if 'нагваль' in fd.read():
...             print('Книга ' + filename + ' об индейцах')

Извлечение имени файла из пути

Функция os.path.split совершает обратное действие — отрезает имя файла или ниже лежащей папки от пути:

>>> import os

>>> path = './work/project/version8/final.txt'
>>> dirpath, filename = os.path.split(path)
>>> print(dirpath)
./work/project/version8
>>> print(filename)
final.txt
>>> project_dir, version_dir = os.path.split(dirpath)
>>> print(project_dir)
./work/project
>>> print(version_dir)
version8

Извлечение расширения

Кроме того, может пригодиться функция os.path.splitext, котоая отрезает расширение файла:

>>> import os
>>> path = './work/project/version12/final.txt'
>>> base, ext = os.path.splitext(path)
>>> print(base, ext, sep='n')
./work/project/version12/final
.txt

Проверка типа файла

Кроме прочего, модуль os.path содержит функции для проверки существования файла и для определения его типа:

>>> import os

>>> path = './kursach/text'
>>> if os.path.exists(path):
...     print(path, 'существует')
...     if os.path.isfile(path):
...         print(path, '— это файл')
...     elif os.path.isdir(path):
...         print(path, '— это папка')
...     else:
...         print(path, '— это ни файл и ни папка')
... else:
...     print(path, 'не существует')

Манипуляции с файлами и папками

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

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

Нет ничего проще, чем создать пустой файл, достаточно открыть несуществующий файл с флагом 'x':

>>> with open('empty.txt', 'x'):
...     pass

Конечно, можно было бы использовать флаг 'w', но тогда уже существующий файл был бы стёрт. С флагом 'x' open либо создаст новый файл, либо выбросит ошибку.

Создание папки

Для создания новой папки используйте os.mkdir(name). Эта функция выбросит ошибку, если по указанному пути уже существует файл или папка. Если вам нужно создать сразу несколько вложенных папок, то смотрите функцию os.makedirs(name, exist_ok=False).

Перемещение и переименование

Для удобной манипуляции с файлами и папками в стандартной библиотеки Python существует специальный модуль shutil. Функция shutil.move(source, destination) позволяет вам переместить любой файл или папку (даже непустую). Обратите внимание, что если destination — это уже существующая папка, то файл/папка будет перемещена внутрь неё, в остальных случаях файл/папка будут скопированы точно по нужному адресу. В случае успеха, функция вернёт новое местоположение файла. Если destination существует и не является папкой, то будет выброшена ошибка.

>>> import shutil

>>> source = 'my_poem.txt'
>>> destination = 'trash'
>>> # Создаем папку назначения
>>> os.mkdir(destination)
>>> # Перенесем файл внутрь папки
>>> path = shutil.move(source, destination)
>>> print(path)
trash/my_poem.txt
>>> # Перенесем файл обратно
>>> new_name = 'poem.txt'
>>> final_path = shutil.move(path, new_name)
>>> print(final_path)
poem.txt

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

Копирование

Скопировать файл можно с помощью функции shutil.copy(source, destination). Правила расположения копии будут те же, что и при использовании shutil.move, за тем исключением, что если destination существует и не является файлом, то он будет заменён и ошибки это не вызовет.

Скопировать папку для операционной системы сложнее, ведь мы всегда хотим скопировать не только папку, но и её содержимое. Для копирования папок используйте shutil.copytree(source, destination). Обратите внимание, что для этой функции destination всегда должно быть путём конечного расположения файлов и не может быть уже существующей папкой.

Удаление

Удалить файл можно с помощью функции os.remove, а пустую папку с помощью функции os.rmdir.

А вот для удаления папки с содержимым вновь понадобится shutil. Для удаления такой папки используйте shutil.rmtree.

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

Домашняя работа

  1. В текущей папке лежат файлы с расширениями .mp3, .flac и .oga. Создайте папки mp3, flac, oga и положите туда все файлы с соответствующими расширениями.
  2. В текущей папке лежит две других папки: vasya и mila, причём в этих папках могут лежать файлы с одинаковыми именами, например vasya/kursovaya.doc и mila/kursovaya.doc. Скопируйте все файлы из этих папок в текущую папку назвав их следующим образом: vasya_kursovaya.doc, mila_test.pdf и т.п.
  3. В текущей папке лежат файлы следующего вида: S01E01.mkv, S01E02.mkv, S02E01.mkv и т.п., то есть все файлы начинаются с S01 или S02. Создайте папки S01 и S02 и переложите туда соответствующие файлы.
  4. В текущей папке лежат файлы вида 2019-03-08.jpg, 2019-04-01.jpg и т.п. Отсортируйте файлы по имени и переименуйте их в 1.jpg, 2.jpg, …, 10.jpg, и т.д.
  5. В текущей папке лежат две другие папки: video и sub. Создайте новую папку watch_me и переложите туда содержимое указанных папок (сами папки класть не надо).
  6. В текущей папке лежат файлы типа Nina_Stoletova.jpg, Misha_Perelman.jpg и т.п. Переименуйте их переставив имя и фамилию местами.
  7. В текущей папке лежит файл list.tsv, в котором с новой строки написаны имена некоторых других файлов этой папки. Создайте папку list и переложите в неё данные файлы.

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

Чтобы переместить файл в Python, мы можем использовать 2 способа:

  1. Функция Python os.rename()
  2. Метод Shutil.move()

Если файл не найден по указанному пути, он вернет ошибку FileError.

Переместите файл с помощью функции os.rename()

Python os.rename() переименовывает файл или каталог src в dist.

Если dst — это файл или каталог (уже присутствующий), то будет возвращен OSError.

Синтаксис

Параметры

  1. src — это обязательный параметр, и это фактическое имя файла или каталога.
  2. dst — это обязательный параметр, и это новое имя файла или каталога.

Функция не возвращает никаких значений.

Допустим, у нас есть один файл с именем data.csv, и нам нужно переместить этот файл в другую папку с именем app, которая находится на том же уровне каталога, что и файл data.csv.

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

import os

# Move a file by renaming it’s path

os.rename(‘data.csv’, ‘app/data.csv’)

print(‘The file is successfully moved to another destination’)

Выход:

The file is successfully moved to another destination

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

Ошибка перемещения файла: FileNotFoundError

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

Таким образом, исходный файл не будет перемещаться, и мы получим ошибку FileNotFoundError.

Смотрите вывод.

Traceback(most recent call last):

  File «app.py», line 4, in <module>

    os.rename(‘data.csv’, ‘app/data.csv’)

FileNotFoundError: [Errno 2] No such file or directory: ‘data.csv’ -> ‘app/data.csv’

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

Обработка возможных ошибок при перемещении файла в Python

См. следующий код.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

# importing os module

import os

# Source file path

source = ‘data.csv’

# destination file path

dest = ‘app/data.csv’

# try renaming the source path

# to destination path

# using os.rename() method

try:

    os.rename(source, dest)

    print(«File is moved successfully»)

# If Source is a file

# but destination is a directory

except IsADirectoryError:

    print(«Source is a file but destination is a directory.»)

# If source is a directory

# but destination is a file

except NotADirectoryError:

    print(«Source is a directory but destination is a file.»)

# For permission related errors

except PermissionError:

    print(«Operation not permitted.»)

# For other errors

except OSError as error:

    print(error)

Выход:

python3 app.py

File is moved successfully

С помощью Shutil.move()

Функция Shutil.move() Python рекурсивно перемещает файл или каталог (источник) в другое место (место назначения) и возвращает место назначения. Если каталог назначения уже существует, то src перемещается внутрь этого каталога.

Синтаксис

shutil.move(src, dest, copy_function=copy2)

Параметры

  • src: строка, представляющая путь к исходному файлу.
  • dest: это строка, представляющая путь к целевому каталогу.
  • copy_function(optional): это необязательный параметр, значением по умолчанию которого является copy2. Мы можем использовать другие функции копирования, такие как copy, copytree и т. д. для этого параметра.

Пример метода Shutil.move()

См. следующий код.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

# importing shutil module

import shutil

# Source file path

source = ‘data.csv’

# destination file path

dest = ‘app/data.csv’

# try to move the source file

# to destination path

# using shutil.move() method

# and return dest file path

try:

    dest = shutil.move(source, dest)

    print(«File is moved successfully to: «, dest)

# If Source is a file

# but destination is a directory

except IsADirectoryError:

    print(«Source is a file but destination is a directory.»)

# If source is a directory

# but destination is a file

except NotADirectoryError:

    print(«Source is a directory but destination is a file.»)

# For permission related errors

except PermissionError:

    print(«Operation not permitted.»)

# For other errors

except OSError as error:

    print(error)

Выход:

File is moved successfully to: app/data.csv

Заключение

Метод shutil.move() в Python

Python предоставляет два модуля: os и Shutil для выполнения операций с файловой системой. Мы рассмотрели оба модуля и их методы для перемещения файла.

Автор статей и разработчик, делюсь знаниями.

Файл используется для постоянного хранения данных. Иногда нам требуется переместить расположение файла с одного пути на другой для целей программирования. Эту задачу можно выполнить с помощью скрипта Python несколькими способами. Move() – это наиболее часто используемый метод Python для перемещения файла из одного каталога в другой каталог, определенный в модуле shutil. Другой способ перемещения файла с помощью метода rename(), который определен в модуле os. Эти два метода можно использовать для перемещения файла из одного каталога в другой, как описано в этой статье.

Пример 1: Переместить файл с исходным именем

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

# Импортировать модуль shutil

import shutil

# Импортировать модуль пути из ОС

from os import path


# Задайте имя файла с путем

source_path = "fruit.txt"


# Проверьте, существует ли файл

if path.exists(source_path):

# Задайте путь к каталогу, в который будет перемещен файл

destination_path = "Files"

# Переместите файл в новое место

new_location = shutil.move(source_path, destination_path)

# Распечатать новое расположение файла

print("% s перемещен в указанное место,% s" % (source_path , new_location))

else :

# Распечатать сообщение, если файл не существует

print ("Файл не существует.")

Вывод

Здесь файл fruit.txt существует, и он перемещен в папку Files.

Пример 2. Переместить файл с новым именем

Способ перемещения файла из одного места в другое путем переименования файла показан в следующем сценарии. Модули shutil и path были импортированы для перемещения файла и проверки его существования. Новое имя файла определено в пути назначения файла. Если файл перемещен успешно, то путь к файлу с новым именем будет напечатан, иначе будет напечатано сообщение об ошибке.

# Импорт модуля shutil

import shutil

# Импорта из OS

from os import path


# Установить имя файла с путем

source_path = «dept.txt»


# Проверьте файл существует или нет

if path.exists(source_path):

# Задайте путь к каталогу назначения с новым именем

destination_path = "Files/department.txt"

# Переместите файл в новое место

new_location = shutil.move(source_path, destination_path)

# Распечатать новое расположение файла

print("{0} перемещается в нужное место, {1}".format(source_path,new_location))

else:

# Распечатать сообщение, если файл не существует

print("Неверный путь к файлу.")

Вывод

Здесь, файл, dept.txt, существует, и он был переименован с именем department.txt и перемещено в папку Files.

Пример 3. Перемещение папки с несколькими файлами

Способ перемещения папки с несколькими файлами показан в следующем сценарии. Здесь переменная source_path содержит исходный путь к папке, а переменная destination_path содержит путь к целевой папке. Остальное содержимое сценария такое же, как в двух предыдущих примерах.

# Импортировать модуль shutil

import shutil

# Импортировать модуль пути из ОС

from os import path


# Установить путь к каталогу файлов для перемещения

source_path = "Images/dice"


# Проверить, существует

if path.exists(source_path):

# Задайте путь к каталогу

destination_path = "Files/dice"

# Переместите каталог с файлами в новое место

new_location = shutil . ход ( source_path , destination_path )

# Распечатать новое расположение

new_location = shutil.move(source_path, destination_path)

else :

# Распечатать сообщение, если путь к каталогу не существует

print("Недопустимое расположение каталога.")

Вывод

Согласно сценарию, папка dice переместилась в папку Files/dice.

Пример 4. Перемещение всех файлов и папок определенного каталога

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

# Импортировать модуль os

import os

# Установить путь к каталогу файлов для перемещения

source_path = "documents/"

# Проверить, существует ли путь к каталогу,

if os.path.exists(source_path):

# Задайте путь к каталогу

destination_path = "Files/"

# Создайте список файлов и папок исходного пути

filelist = os.listdir(source_path)


# Итерировать список файлов и папок

for file in filelist:

os.rename(source_path + file, destination_path + file)

# Распечатать новое местоположение

print("Все файлы и папки {0} перемещаются в нужное место, {1}".format(source_path, destination_path))

else:

# Распечатать сообщение если путь к каталогу не существует,

print("Неверный путь к каталогу.")

Вывод

По сценарию все файлы и папки папки с документами переместились в папку Files.

Вывод

В этой статье показаны различные способы перемещения одного или нескольких файлов. Использование модулей shutil и os для перемещения файлов и папок было объяснено на простом примере, который легко помогает пользователям python выполнять этот тип задач.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Понравилась статья? Поделить с друзьями:
  • Python отказано в доступе windows 10
  • Python обновить до последней версии windows
  • Python не является внутренней или внешней командой windows 10
  • Python не устанавливается windows 7 setup failed
  • Python не устанавливается windows 7 service pack 1 установлен