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

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

Требования для копирования файлов с помощью Python

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

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

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

шутил библиотека.

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

Как копировать файлы с помощью встроенной библиотеки Python Shutil

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

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

По сути, шутил принимает этот формат:

shutil.copy ([путь к исходному каталогу], [путь к каталогу назначения], follow_symlinks = True)

Например, в приведенном ниже коде используется shutil.copy () чтобы скопировать файл с именем copy.txt из папки с названием моя папка в другой, названный пункт назначения. Затем он переименовывает конечный файл как newFile.txt:

импортный шутил
sourceFile = "C: /Users/some_directories/my_folder/copy.txt"
destinationFile = "C: /Users/some_directories/destination/newFile.txt"
shutil.copy (исходный файл, целевой файл, follow_symlinks = True)

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

Однако вы также можете использовать интегрированную среду разработки Python (IDLE) по умолчанию, если вы не знакомы с запуском Python через командную строку.

Связанный: Команды командной строки (CMD), которые вы должны знать

В shutil.copy не копирует метаданные исходного файла. По сути, ваша машина видит конечный файл как полностью новый и передает ему новые метаданные.

Однако, чтобы скопировать метаданные вместе с исходным файлом, используйте shutil.copy2 метод:

импортный шутил
shutil.copy2 (исходный файл, целевой файл, follow_symlinks = True)

Вышеупомянутый метод сохраняет исходные метаданные старого файла в конечном файле. Например, конечный файл сохраняет дату создания исходного файла, его размер и другие атрибуты.

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

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

Итак, если вы вставляете исходный файл в текущий рабочий каталог, ваш код должен выглядеть так:

импортный шутил
shutil.copy2 (исходный файл, целевой файл)

В дополнение к методам shutil, описанным выше, вы также можете использовать shutil.copyfile или же shutil.copyfileobj.

С помощью shutil.copyfileobj немного отличается, так как требует встроенного открыто функция. Затем вам нужно читать и записывать двоичный файл, включая "рб" и "wb" аргументы.

Посмотрим, как shutil.copyfileobj метод работает с теми же каталогами, которые мы использовали ранее:

импортный шутил
sourceFilePath = open ("C: /Users/some_directories/my_folder/copy.txt", "rb")
destinationFilePath = open ("C: /Users/some_directories/destination/newFile.txt", "wb")
shutil.copyfileobj (путь к исходному файлу, путь к файлу назначения)

Обратите внимание, что shutil.copyfileobj () не требует follow_symlinks аргумент.

Тем не мение, shutil.copyfile () работает примерно так же .copy и .copy2 делает. Они лишь незначительно отличаются по своим внутренним функциям.

Чтобы использовать shutil.copyfile () метод:

импортный шутил
sourceFilePath = "C: /Users/some_directories/my_folder/copy.txt"
destinationFilePath = "C: /Users/some_directories/destination/newFile.txt"
shutil.copyfile (путь к исходному файлу, путь к файлу назначения)

Как копировать файлы с помощью модуля os

В Операционные системы модуль использует два встроенных метода для копирования файлов; os.system () и os.popen () методы.

В os.system () Метод позволяет имитировать среду командной строки.

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

Чтобы использовать os.system () метод в Windows:

импорт ОС
os.system ('копировать source.txt destination.txt)

Вы также можете использовать встроенный xcopy Команда терминала Windows:

импорт ОС
os.system ('xcopy source.txt destination.txt)

Чтобы использовать os.system метод в Linux замените копировать с cp:

импорт ОС
os.system ('cp source.txt destination.txt)

Как копировать файлы с помощью метода os.popen

Чтобы использовать этот метод, замените os.system () с os.popen ().

В Windows используйте:

импорт ОС
os.popen ('копировать source.txt destination.txt)

Как мы поступили с os.system (), заменять копировать с cp чтобы использовать этот метод в Linux:

импорт ОС
os.popen ('cp source.txt destination.txt)

Как копировать файлы с помощью модуля подпроцесса Python

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

импортировать подпроцесс как sp
sp.call ("копировать исходный файл назначения файл", оболочка = True)

Однако в Linux используйте:

импортировать подпроцесс как sp
sp.call ("cp sourceFile destinationFile", shell = True)

В подпроцесс библиотека также использует subprocess.check_out () метод. Работает так же subprocess.call () делает:

импортировать подпроцесс как sp
sp.check_out ("копировать исходный файл назначения файл", оболочка = True)

В Linux замените копировать с cp:

импортировать подпроцесс как sp
sp.check_out ("cp sourceFile destinationFIle", shell = True)

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

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

Как копировать файлы в Python без использования библиотек

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

Вот как этого добиться:

sourcePath = "C: /Users/source_directories/my_folder/copy.txt"
destinationPath = "C: /Users/some_directories/destination_directories/newFile.txt"
с открытым (sourcePath, "rb"), как читалось:
с open (destinationPath, "wb") в качестве myfile:
myfile.write (read.read ())

К сделать код многоразовым, вы можете преобразовать его в функцию:

def copyFile (источник = Нет, пункт назначения = Нет):
если нет (источник и место назначения) == Нет:
с открытым кодом (исходный код, «rb») как читается:
с open (destination, "wb") в качестве myfile:
myfile.write (read.read ())
еще:
print ("Пожалуйста, введите исходный и целевой пути")
copyFile (sourcePath, destinationPath)

Вот и все. Вы только что сделали многоразовый копировальный аппарат с Python без использования какой-либо библиотеки.

Продолжайте автоматизировать задачи с помощью Python

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

Например, вы можете изменить дату и время на своем ПК с помощью модуля ОС. Вы даже можете писать собственные команды bash с помощью Python, если хотите.

Электронное письмо
Как создавать собственные программы командной строки на Python с помощью щелчка

Хотите создавать свои собственные программы командной строки Python, но находите это слишком сложным? Используйте Click, полезный инструмент Python для оптимизации вашего кода.

Похожие темы
  • Программирование
  • Python
Об авторе
Идову Омисола (Опубликовано 56 статей)

Идову увлечен всеми интеллектуальными технологиями и производительностью. В свободное время он играет с кодированием и переключается на шахматную доску, когда ему скучно, но он также любит время от времени отвлекаться от рутины. Его страсть показывать людям современные технологии побуждает его писать больше.

Ещё от Idowu Omisola

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Еще один шаг…!

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

.