Рубрики
Без рубрики

Модуль Python Shutil: 10 Методов, Которые Вы Должны знать

“Python shutil module” выполняет высокоуровневые операции с файлами и каталогами, которые помогают нам копировать и удалять файлы и каталоги.

Автор оригинала: Team Python Pool.

Модуль Python Shutil: 10 Методов, Которые Вы Должны знать

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

Как работает модуль python shutil?

Основной синтаксис использования модуля shutil выглядит следующим образом:

import shutil
shutil.submodule_name(arguments)

Операции с файлами и каталогами

1. Python shutil.copy()

shutil.copy(): Эта функция используется для копирования содержимого или текста исходного файла в целевой файл или каталоги. Он также сохраняет режим разрешений файла, но другой тип метаданных файла, такой как создание файла и его модификация, не сохраняется.

import os 
  
# import the shutil module  
import shutil 
  
# write the path of the file
  
# List all the files and directories in the given path
print("Before copying file:") 
print(os.listdir(path)) 
  
  
# write the Source path 
  
# Print the file permission of the source given.stat(source).st_mode 
print("File Permission mode:", perms, "\n") 
  
# Write the Destination path 
  
# Copy the content of source file to destination file .copy(source, destinationfile) 
  
# List files and directories of the path 
print("After copying file:") 
print(os.listdir(path)) 
  
# Print again all the file permission.stat(destinationfile).st_mode 
print("File Permission mode:", perms) 
  
# Print path of of the file which is created
print("Destination path:", dests)

Выход:

Before copying file:
['hrithik.png', 'test.py', 'file.text', 'copy.cpp']
File permission mode: 33188

After copying file:
['hrithik.png', 'test.py',  'file.text', 'file(copy).txt', 'copy.cpp']
File permission mode: 33188 
Destination path: /home/User/file(copy).txt

Объяснение:

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

2. Python shutil.copy2()

Во – первых, эта функция точно такая же, как функция copy (), за исключением того, что она поддерживает метаданные исходного файла.

from shutil import *
import os
import time
import sys

def show_file_info(filename):
   .stat(filename)
    print '\tMode    :', stat_info.st_mode
    print '\tCreated :', time.ctime(stat_info.st_ctime)
    print '\tAccessed:', time.ctime(stat_info.st_atime)
    print '\tModified:', time.ctime(stat_info.st_mtime)

os.mkdir('example')
print ('SOURCE time: ')
show_file_info('shutil_copy2.py')
copy2('shutil_copy2.py', 'example')
print ('DESTINATION time:')
show_file_info('example/shutil_copy2.py')

Выход:

SOURCE time:
        Mode    : 33188
        Created : Sat Jul 16 12:28:43 2020
        Accessed: Thu Feb 21 06:36:54 2021
        Modified: Sat Feb 19 19:18:23 2021
DESTINATION time:
        Mode    : 33188
        Created : Mon Mar 1 06:36:54 2021
        Accessed: Mon Mar 1 06:36:54 2021
        Modified: Tue Mar 2 19:18:23 2021 

Объяснение:

В этом коде мы написали функцию copy2 () – это то же самое, что и копия, просто она выполняет одну дополнительную операцию, которая поддерживает метаданные.

3. Python shutil.copyfile()

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

import os
import shutil

print('BEFORE LIST:', os.listdir('.'))
shutil.copyfile('file_copy.py', 'file_copy.py.copy')
print('AFTER LIST:', os.listdir('.'))

Выход:

Latracal:shutil Latracal$ python file_copy.py
BEFORE LIST: 
[' .DS_Store', 'file_copy.py']
AFTER LIST: 
[ .DS_Store', 'file_copy.py', 'file_copy.py.copy']

Объяснение:

В этом коде мы написали функцию copy file() то же имя файла копируется для нового файла, просто копия добавляется в новое имя файла. смотрите в выходных данных.

4. Python shutil.copytree()

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

import pprint
import shutil
import os

shutil.copytree('../shutil', './Latracal')
pprint.pprint(os.listdir('./Latracal'))

Выход:

Latracal:shutil Latracal$ clone—directory. py
[' .DS—Store' ,
'file_copy.py' ,
'file_copy_new.py'
'file_with_metadata.py' , 
'clone_directory. py']

Объяснение:

В этом коде мы написали функцию copytree (), чтобы получить дубликат этого файла.

5. Python shutil.rmtree()

Эта функция используется для удаления конкретного файла и подкаталога из указанного каталога, что означает, что каталог удаляется из системы.

import pprint
import shutil
import os

print('BEFORE:')
pprint.pprint(os.listdir('.'))

shutil.rmtree('Latracal')

print('\nAFTER:')
pprint.pprint(os.listdir('.'))

Выход:

Latracal:shutil Latracal$ retove—dir.py
BEFORE:
['.DS_Store',
'file_copy.py',

'file_copy_new.py',
'remove_dir.py',

'copy_with_metadata.py',
'Latracal'
'clone_directory.py']


AFTER:
['.DS_Store',
'file—copy.py' ,
'file_copy_new.py',
'remove_dir.py',

'copy_with_metadata.py',
'clone_directory. py']

Объяснение:

В этом коде мы написали функцию rmtree (), которая используется для удаления файла или каталога. Во – первых, мы перечислили все файлы и применили функцию удаления, а затем снова перечислили файл, чтобы увидеть, удален ли он или нет.

6. шутил.который()

Функция which() a-это отличный инструмент, который используется для поиска пути к файлу в вашей машине, чтобы легко добраться до конкретного места назначения, зная путь к файлу.

import shutil
import sys

print(shutil.which('bsondump'))
print(shutil.which('no-such-program'))

выход:

Latracal:shutil Latracal$  python find_file.py
/usr/10ca1/[email protected]/bin/bsondunp

Объяснение:

В этом коде мы написали функцию that (), чтобы при необходимости найти любой из файлов.

7. Python shutil.disk_usage()

Эта функция используется для того, чтобы понять, сколько информации присутствует в нашей файловой системе, просто вызвав функцию disk_usage ().

import shutil

total_mem, used_mem,.disk_usage('.') **9

print('Total: {:6.2f} GB'.format(total_mem/gb))
print('Used : {:6.2f} GB'.format(used_mem/gb))
print('Free : {:6.2f} GB'.format(free_mem/gb))

Выход:

shubhm:shutil shubhmS py
Total:499.9ø GB
Used :187.72 GB
Free :3ø8.26 GB

Объяснение:

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

8. Python shutil.move()

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

import shutil
shutil.move('hello.py','newdir/')

Выход:

 'newdir/hello.py'

Объяснение:

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

9. Python shutil.make_archive()

Эта функция используется для создания архива (zip или tar) файлов в корневом каталоге.

import shutil
import pprint

shutil.make_archive("newdirabcd","zip",root_directory)

выход:

'C:\\python\\latracal\\newdirabcd.zip' 

Объяснение:

В этом коде мы написали функцию make_archive() с сообщением им имени корневого каталога для создания архива файлов в корневом каталоге.

10. Python shutil.get_archive_formats()

Эта функция дает нам все поддерживаемые форматы архивов в файле или каталоге.

import shutil
import sys 

shutil.get_archive_formats()

выход:

[('bztar', "bzip2'ed tar-file"), ('gztar', "gzip'ed tar-file"), ('tar', 'uncompressed tar file'), ('xztar', "xz'ed tar-file"), ('zip', 'ZIP file')]

Объяснение:

В этом коде мы написали функцию get_archive_formats (), чтобы получить вспомогательные форматы архивов в файле или каталоге.

Преимущества

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

Надо Читать

  • [Лучшие] Способы удаления файла в Python
  • Python Переименовывает Файл С Подробными Примерами Лучших Практик
  • Реализация алгоритма Дейкстры в Python
  • 8 Примеров реализации ОС.listdir() в Python
  • Распакуйте файл в Python: 5 Сценариев, которые вы должны знать

Вывод

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

Однако, если у вас есть какие-либо сомнения или вопросы, дайте мне знать в разделе комментариев ниже. Я постараюсь помочь вам как можно скорее.

Счастливого Пифонирования!