Fejleszteni szeretné a Python készségét? Ezután megpróbálhat végrehajtani néhány feladatot a számítógépén a Python segítségével. A fájlok másolása és beillesztése az egyik könyvtárból a másikba a Python segítségével szórakoztató módszer erre.

Amellett, hogy szórakoztató, lehetővé teszi fájlok gyors olvasását és írását anélkül, hogy elvonná a figyelmét a kódtól. Ha még nem ismeri a Python alkalmazottait, akkor ez egy olyan képesség, amelyre még mindig szüksége lehet, hogy így vagy úgy felvegye. Tehát megtudhatjuk, hogyan lehet fájlokat másolni a Python segítségével ezen a poszton keresztül.

A fájlok Python használatával történő másolásának követelményei

A fájlok Python segítségével sokféleképpen másolhatók és illeszthetők be. Tehát a végrehajtás követelménye változó, és attól függ, hogy melyik módszert választja.

Lehet, hogy a fájlok Python-val történő másolásához nincs szükség további modulokra, de ha szükséges, akkor is használhat beépített könyvtárakat.

Például, ha a os módszerrel, importálnia kell a kódjába. A fájlok Python másolásának egyik legnépszerűbb módja azonban a

instagram viewer
shutil könyvtár.

Nézzük meg, hogyan használhatjuk ezeket a különféle módszereket a fájlok Python segítségével történő másolásához.

Fájlok másolása a Python beépített Shutil könyvtárának használatával

A shutil modul egy beépített és nagy teljesítményű Python könyvtár a fájlok gyors olvasásához és írásához a Pythonban.

Használatához csak a forrás- és célfájlok teljes elérési útját kell megadnia.

Összefoglalva, shutil ezt a formátumot veszi fel:

shutil.copy ([forráskönyvtár útvonala], [célkönyvtár útvonala], follow_symlinks = True)

Például az alábbi kód használja shutil.copy () nevű fájl másolásához copy.txt nevű mappából my_folder egy másik nevűbe rendeltetési hely. Ezután átnevezi a célfájlt newFile.txt:

import 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)

Ne feledje, hogy beírhatja a kódot tetszőleges kódszerkesztő. Ezután a parancssor segítségével futtathatja.

Használhatja azonban az alapértelmezett Python Integrated Development Environment (IDLE) szolgáltatást is, ha még nem ismeri a Python parancssoron keresztül történő futtatását.

Összefüggő: Parancssor (CMD) parancsok, amelyeket ismernie kell

A shutil.másolat metódus nem másolja a forrásfájl metaadatait. Lényegében a gép teljesen újként látja a célfájlt, és új metaadatokat ad neki.

A metaadatok másolásához azonban az eredeti fájlhoz használja a shutil.másolat2 módszer:

import shutil
shutil.copy2 (sourceFile, destinationFile, follow_symlinks = True)

A fenti módszer megőrzi a régi fájl eredeti metaadatait a célfájlban. Például a célfájl megőrzi a forrásfájl létrehozásának dátumát, méretét és egyéb attribútumait.

A follow_symlinks argumentum egy szimbolikus link deklaráció, amely lehetővé teszi shutil abszolút utat követni. Ezért hozzá kell adnia, ha a forrás- és a célfájlok különböző könyvtárakban vannak.

De ha mindkét fájl az aktuális munkakönyvtárban található, akkor nem kell feltüntetnie a follow_symlinks. Ha mégis megteszi, a Python szintaktikai kivételt vet fel.

Tehát, ha beilleszti a forrásfájlt a jelenlegi munkakönyvtárába, akkor a kódjának így kell kinéznie:

import shutil
shutil.copy2 (forrásFájl, célFájl)

A fenti shutil módszerek mellett a következőket is használhatja shutil.másolatfájl vagy shutil.copyfileobj.

Használata shutil.copyfileobj egy kicsit más, mivel a beépítettet igényli nyisd ki funkció. Ezután el kell olvasnia és binárisan írni a "rb" és "wb" érvek.

Lássuk, hogyan shutil.copyfileobj A módszer ugyanazokkal a könyvtárakkal működik, mint korábban:

import shutil
sourceFilePath = open ("C: /Users/some_directories/my_folder/copy.txt", "rb")
destinationFilePath = open ("C: /Users/some_directories/destination/newFile.txt", "wb")
shutil.copyfileobj (sourceFilePath, destinationFilePath)

Vegye figyelembe, hogy shutil.copyfileobj () nem igényli a follow_symlinks érv.

Azonban, shutil.copyfile () ugyanúgy működik .másolat és .másolat2 csinál. Csak jelentéktelen mértékben különböznek belső funkcióikban.

A shutil.copyfile () módszer:

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

Fájlok másolása az os modullal

A os modul két beépített módszert használ a fájlok másolásához; os.system () és os.popen () mód.

A os.system () A módszer lehetővé teszi a parancssori környezet utánzását.

Az os módszerek hiányossága azonban az, hogy csak az aktuális munkakönyvtárba másolnak fájlokat.

A os.system () módszer Windows rendszeren:

import os
os.system ('copy.txt cél.txt másolása)

Használhatja a beépítettet is xcopy Windows terminál parancs:

import os
os.system ('xcopy source.txt cél.txt)

A os.rendszer módszer Linux alatt, cserélje le másolat val vel cp:

import os
os.system ('cp forrás.txt cél.txt)

Fájlok másolása az os.popen módszerrel

A módszer használatához cserélje ki os.system () val vel os.popen ().

Windows rendszeren használja:

import os
os.popen ('copy.txt cél.txt másolása)

Ahogy mi tettük os.system (), cserélje ki másolat val vel cp hogy ezt a módszert Linuxon használja:

import os
os.popen ('cp forrás.txt cél.txt)

Fájlok másolása a Python alfolyamat moduljával

A fenti módszerek mellett használhatja a alfolyamat () könyvtár fájlok másolásához a Pythonban:

import alfolyamat mint sp
sp.call ("copy sourceFile destinationFile", shell = True)

Linuxon azonban használja:

import alfolyamat mint sp
sp.call ("cp sourceFile destinationFile", shell = True)

A alfolyamat könyvtár is használja subprocess.check_out () módszer. Ugyanúgy működik alfolyamat.hívás () csinál:

import alfolyamat mint sp
sp.check_out ("copyFile destinationFile másolása", shell = True)

Linux rendszeren cserélje le másolat val vel cp:

import alfolyamat mint sp
sp.check_out ("cp sourceFile destinationFIle", shell = True)

Azonban az os metódusokhoz hasonlóan az alfolyamatos módszerek is csak a jelenlegi munkakönyvtárban található fájlokkal működnek.

Jegyzet: A fájlokat átmásolhatja egy mappába is, ha ugyanabban a munkakönyvtárban van, mint a forrásfájl. Csak annyit kell tennie, hogy lecseréli a célfájl nevét a célmappa nevére. Ellenőrizze azonban, hogy a célmappa és a forrásfájl az aktuális munkakönyvtárban található-e.

Fájlok másolása Python-ba könyvtárak használata nélkül

Fájlokat másolhat a Python-ban könyvtár függvényében is. A shutil módszerhez hasonlóan csak a forrás- és a célkönyvtár teljes elérési útjára van szükség.

Így érheted el ezt:

sourcePath = "C: /Users/source_directories/my_folder/copy.txt"
destinationPath = "C: /Users/some_directories/destination_directories/newFile.txt"
az open (sourcePath, "rb") szöveggel:
nyitott (destinationPath, "wb") fájlként:
myfile.write (read.read ())

Nak nek tegye a kódot újrafelhasználhatóvá, módosíthatja egy függvénygé:

def copyFile (forrás = Nincs, cél = Nincs):
ha nem (forrás és cél) == Nincs:
nyílt (forrás, "rb") olvasattal:
nyitott (cél, "wb") fájlként:
myfile.write (read.read ())
más:
nyomtatás ("Kérjük, adja meg a forrás és cél útvonalakat")
copyFile (sourcePath, destinationPath)

Ez az. Most készítettél újrafelhasználható fájlmásolót a Python-nal, könyvtár használata nélkül.

Automatizálja a feladatokat a Python segítségével

Amellett, hogy a fájlok másolása a projektek építése közben segít a projektek összpontosításában, jobban megérteni a fájlkezelést a Python segítségével. A Python-feladatokkal való játék azonban javíthatja a Python-készségét, különösen akkor, ha Ön kezdő.

Például megváltoztathatja a dátumot és az időt a számítógépén az os modullal. Akár egyéni bash parancsokat is írhat a Pythonnal, ha akarja.

Email
Saját parancssori programok létrehozása a Pythonban kattintással

Saját Python parancssori programokat szeretne készíteni, de túl nehéznek találja? Használja a Click, egy hasznos Python eszközt a kód egyszerűsítéséhez.

Kapcsolódó témák
  • Programozás
  • Piton
A szerzőről
Idowu Omisola (56 cikk megjelent)

Idowu minden okos technológiával és termelékenységgel rajong. Szabadidejében kódolással játszik, és ha unatkozik, átvált a sakktáblára, de imád egyszer-egyszer elszakadni a rutintól. Az a szenvedély, hogy megmutatja az embereknek a modern technológiát, további írásra ösztönzi.

Tovább Idowu Omisolától

Iratkozzon fel hírlevelünkre

Csatlakozzon hírlevelünkhöz, amely műszaki tippeket, véleményeket, ingyenes e-könyveket és exkluzív ajánlatokat tartalmaz!

Még egy lépés…!

Kérjük, erősítse meg e-mail címét az imént elküldött e-mailben.

.