Искате ли да подобрите уменията си на Python? След това можете да опитате да изпълните някои задачи на вашия компютър с Python. Копирането и поставянето на файлове от една директория в друга с Python е забавен начин да направите това.

Освен че е забавно, той ви позволява да четете и пишете файлове бързо, без да се разсейвате от кода си. Ако сте нов в Python, това е умение, което може да ви се наложи да изберете по един или друг начин. И така, нека разберем как да копираме файлове с Python чрез тази публикация.

Изисквания за копиране на файлове с Python

Има много начини за копиране и поставяне на файлове с Python. И така, изискването за това е различно и зависи от метода, който сте решили да използвате.

Въпреки че може да не ви трябват допълнителни модули за копиране на файлове с Python, все пак можете да използвате вградени библиотеки, ако искате.

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

instagram viewer

Нека да видим как можем да използваме тези различни методи за копиране на файлове с Python.

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

The шутил module е вградена и мощна библиотека на Python за бързо четене и писане на файлове в Python.

За да го използвате, трябва само да предоставите пълния път на файловете източник и местоназначение.

По същество, шутил приема този формат:

shutil.copy ([път на директорията на източника], [път на директорията на дестинацията], follow_symlinks = True)

Например кодът по-долу използва shutil.copy () за да копирате файл с име copy.txt от папка, наречена my_folder в друг с име дестинация. След това преименува целевия файл като newFile.txt:

внос shutil
sourceFile = "C: /Users/some_directories/my_folder/copy.txt"
destinationFile = "C: /Users/some_directories/destination/newFile.txt"
shutil.copy (sourceFile, destinationFile, follow_symlinks = True)

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

Можете обаче да използвате и интегрираната среда за разработка Python по подразбиране (IDLE), ако не сте запознати с работата на Python чрез командния ред.

Свързани: Команден ред (CMD) Команди, които трябва да знаете

The shutil.copy метод не копира метаданните на изходния файл. По същество вашата машина вижда целевия файл като нов изцяло и му предоставя нови метаданни.

За да копирате метаданните обаче заедно с оригиналния файл, използвайте shutil.copy2 метод:

внос shutil
shutil.copy2 (sourceFile, destinationFile, follow_symlinks = True)

Горният метод запазва оригиналните метаданни на стария файл в целевия файл. Например целевият файл запазва датата, на която сте създали изходния файл, неговия размер и други атрибути.

The follow_symlinks аргумент е символна декларация за връзка, която позволява шутил следвайте абсолютен път. Затова трябва да го включите, ако файловете източник и местоназначение са в различни директории.

Но ако и двата файла са в текущата ви работна директория, не е необходимо да включвате follow_symlinks. Ако го направите, Python създава изключение от синтаксиса.

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

внос shutil
shutil.copy2 (sourceFile, destinationFile)

В допълнение към използването на методите shutil по-горе, можете да използвате и shutil.copyfile или shutil.copyfileobj.

Използвайки shutil.copyfileobj е малко по-различно, тъй като изисква вграденото отворен функция. След това трябва да четете и пишете двоичен файл, като включите "rb" и "wb" аргументи.

Нека да видим как shutil.copyfileobj метод работи със същите директории, които използвахме преди:

внос shutil
sourceFilePath = отворен ("C: /Users/some_directories/my_folder/copy.txt", "rb")
destinationFilePath = отворен ("C: /Users/some_directories/destination/newFile.txt", "wb")
shutil.copyfileobj (sourceFilePath, destinationFilePath)

Отбележи, че shutil.copyfileobj () не изисква follow_symlinks аргумент.

Въпреки това, shutil.copyfile () работи почти по същия начин .копие и .копия2 прави. Те се различават само незначително във вътрешните си функции.

За да използвате shutil.copyfile () метод:

внос shutil
sourceFilePath = "C: /Users/some_directories/my_folder/copy.txt"
destinationFilePath = "C: /Users/some_directories/destination/newFile.txt"
shutil.copyfile (sourceFilePath, destinationFilePath)

Как да копирате файлове с модула os

The операционна система модулът използва два вградени метода за копиране на файлове; os.system () и os.popen () методи.

The os.system () метод ви позволява да имитирате околната среда на командния ред.

Недостатък на методите os обаче е, че те копират файлове само в текущата ви работна директория.

За да използвате os.system () метод за Windows:

внос os
os.system ('копиране на източник.txt дестинация.txt)

Можете също да използвате вградената xcopy Терминална команда на Windows:

внос os
os.system ('xcopy source.txt destination.txt)

За да използвате os.system метод на Linux, заменете копие с cp:

внос os
os.system ('cp source.txt destination.txt)

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

За да използвате този метод, заменете os.system () с os.popen ().

В Windows използвайте:

внос os
os.popen ('копиране на източник.txt дестинация.txt)

Както направихме с os.system (), заменете копие с cp да използвате този метод на Linux:

внос os
os.popen ('cp source.txt destination.txt)

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

В допълнение към горните методи можете да използвате и подпроцес () библиотека за копиране на файлове в Python:

импортиране на подпроцес като sp
sp.call ("копиране на sourceFile destinationFile", черупка = True)

В Linux обаче използвайте:

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

The подпроцес библиотека също използва subprocess.check_out () метод. Той работи по същия начин subprocess.call () прави:

импортиране на подпроцес като sp
sp.check_out ("копиране на sourceFile destinationFile", черупка = True)

На Linux заменете копие с cp:

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

Въпреки това, подобно на методите os, методите на подпроцес работят само с файлове в текущата ви работна директория.

Забележка: Можете също да копирате файлове в папка, ако тя е в същата работна директория като изходния файл. Всичко, което трябва да направите, е да замените името на целевия файл с името на целевата папка. Уверете се обаче, че целевата папка и изходният файл са в текущата ви работна директория.

Как да копирате файлове в Python, без да използвате библиотеки

Можете също да копирате файлове в Python, без да зависи от която и да е библиотека. Подобно на метода shutil, вие се нуждаете само от пълните пътища на директориите източник и дестинация.

Ето как да постигнете това:

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

Да се направете кода за многократна употреба, можете да го модифицирате във функция:

def copyFile (източник = Няма, местоназначение = Няма):
ако не (източник и дестинация) == Няма:
с отворен (източник, "rb"), както се чете:
с отворен (дестинация, "wb") като myfile:
myfile.write (read.read ())
друго:
print ("Моля, въведете пътищата на източника и местоназначението")
copyFile (sourcePath, destinationPath)

Това е. Току-що направихте копирна машина за многократна употреба с Python, без да използвате никаква библиотека.

Продължавайте да автоматизирате задачите с Python

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

Например можете да промените датата и часа на вашия компютър с модула os. Можете дори да пишете персонализирани команди на bash с Python, ако искате.

електронна поща
Как да създадете свои собствени програми от командния ред в Python с щракване

Искате да създадете свои собствени програми за команден ред на Python, но ви се струва твърде трудно? Използвайте Click, полезен инструмент на Python, за да рационализирате кода си.

Свързани теми
  • Програмиране
  • Python
За автора
Idowu Omisola (Публикувани 56 статии)

Idowu е запален по всичко интелигентни технологии и производителност. В свободното си време той се заиграва с кодиране и превключва на шахматната дъска, когато му е скучно, но също така обича да се откъсва от рутината от време на време. Страстта му да показва на хората пътя към съвременните технологии го мотивира да пише повече.

Още от Idowu Omisola

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!

Още една стъпка…!

Моля, потвърдете имейл адреса си в имейла, който току-що ви изпратихме.

.