Szeretnéd fejleszteni Python készségedet? Ezután megpróbálhat néhány feladatot elvégezni a számítógépén a Python segítségével. Fájlok másolása és beillesztése egyik könyvtárból a másikba a Python segítségével szórakoztató módja ennek.
Amellett, hogy szórakoztató, lehetővé teszi a fájlok gyors olvasását és írását anélkül, hogy elvonná figyelmét a kódtól. Ha új vagy a Pythonban, akkor ez egy olyan készség, amelyet még így vagy úgy kell felvenned. Tehát nézzük meg, hogyan másolhatunk fájlokat Python segítségével ezen a bejegyzésen keresztül.
Fájlok Python használatával történő másolásának követelményei
Sokféleképpen másolhat és illeszthet be fájlokat Python segítségével. Tehát a végrehajtás követelménye változó, és attól függ, hogy milyen módszert választ.
Bár lehet, hogy nincs szüksége extra modulokra a fájlok Python segítségével történő másolásához, továbbra is használhatja a beépített könyvtárakat.
Például, ha használni szeretné a te metódust, importálnia kell a kódjába. Azonban a fájlok Python segítségével történő másolásának egyik népszerű módja a bezár könyvtár.
Lássuk, hogyan használhatjuk ezeket a különféle módszereket fájlok másolására Python segítségével.
Fájlok másolása a Python beépített Shutil könyvtárával
Az bezár modul egy beépített és hatékony 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 a célfájlok teljes elérési útját kell megadnia.
hogyan tudom megváltoztatni az alapértelmezett Google -fiókomat a chrome -ban
Összefoglalva, bezár ezt a formátumot veszi fel:
shutil.copy([source directory path], [destination directory path], follow_symlinks=True)
Például az alábbi kód használja shutil.copy () nevű fájlt másolni copy.txt nevű mappából mappám 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 a kódot tetszőleges kódszerkesztőbe írhatja. Ezután futtathatja a parancssor használatával.
Használhatja azonban az alapértelmezett Python integrált fejlesztői környezetet (IDLE) is, ha nem ismeri a Python futtatását a parancssoron keresztül.
Összefüggő: Parancssor (CMD) parancsok, amelyeket tudnia kell
Az shutil.példány metódus nem másolja a forrásfájl metaadatait. Lényegében a gép teljesen újnak tekinti a célfájlt, és új metaadatokat ad neki.
A metaadatok másolásához azonban az eredeti fájllal együtt használja a shutil.példány2 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.
Az follow_symlinks argumentum egy szimbolikus link deklaráció, amely lehetővé teszi bezár abszolút utat követni. Ezért akkor kell feltüntetnie, ha a forrás- és célfájlok különböző könyvtárakban vannak.
De ha mindkét fájl az aktuális munkakönyvtárban van, akkor nem kell a follow_symlinks . Ha igen, a Python szintaktikai kivételt hoz létre.
a Windows 10 letöltődik, de nem települ
Tehát, ha beilleszti a forrásfájlt az aktuális munkakönyvtárba, a kódnak így kell kinéznie:
import shutil
shutil.copy2(sourceFile, destinationFile)
A fenti zárási módszerek használata mellett a következőket is használhatja shutil.copyfile vagy shutil.copyfileobj .
Használata shutil.copyfileobj Ez egy kicsit más, mivel megköveteli a beépítettet nyisd ki funkció. Ezután binárisan kell olvasnia és írnia 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 () nagyjából ugyanúgy működik .másolat és .másolat2 csinál. Belső funkcióikban csak jelentéktelenül különböznek egymástól.
A használatához 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
Az te modul két beépített módszert használ a fájlok másolására; os.system () és os.popen () mód.
Az os.system () metódus 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árban lévő fájlokat másolják.
A használatához os.system () módszer Windows rendszeren:
import os
os.system('copy source.txt destination.txt)
Használhatja a beépítettet is xcopy Windows terminál parancs:
import os
os.system('xcopy source.txt destination.txt)
A használatához os.system módszer Linuxon, cserélje ki másolat val vel cp :
import os
os.system('cp source.txt destination.txt)
Fájlok másolása az os.popen módszerrel
Ennek a módszernek a használatához cserélje ki os.system () val vel os.popen () .
Windows rendszeren használja:
import os
os.popen('copy source.txt destination.txt)
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 source.txt destination.txt)
Fájlok másolása a Python alfolyamat moduljával
A fenti módszereken kívül a alfolyamat () könyvtár fájlok másolásához Pythonban:
import subprocess as sp
sp.call('copy sourceFile destinationFile', shell=True)
Linux alatt azonban használja:
import subprocess as sp
sp.call('cp sourceFile destinationFile', shell=True)
Az alfolyamat könyvtár is használja subprocess.check_out () módszer. Ez ugyanúgy működik subprocess.call () csinál:
import subprocess as sp
sp.check_out('copy sourceFile destinationFile', shell=True)
Linux esetén cserélje ki másolat val vel cp :
import subprocess as sp
sp.check_out('cp sourceFile destinationFIle', shell=True)
Azonban az OS metódusokhoz hasonlóan az alfolyamatok is csak az aktuális munkakönyvtárban található fájlokkal működnek.
Jegyzet: Másolhat fájlokat egy mappába is, ha az ugyanabban a munkakönyvtárban található, mint a forrásfájl. Mindössze 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 van.
Fájlok másolása Pythonban könyvtárak használata nélkül
A Pythonban fájlokat is másolhat anélkül, hogy bármilyen könyvtáratól függne. A bezárási módszerhez hasonlóan csak a forrás- és célkönyvtárak teljes elérési útjára van szüksége.
hogyan kell nézni a korhatáros youtube -ot
Ezt a következőképpen teheti meg:
sourcePath = 'C:/Users/source_directories/my_folder/copy.txt'
destinationPath = 'C:/Users/some_directories/destination_directories/newFile.txt'
with open(sourcePath, 'rb') as read:
with open(destinationPath, 'wb') as myfile:
myfile.write(read.read())
Annak érdekében, hogy a kódot újrafelhasználhatóvá tegye, módosíthatja funkcióvá:
def copyFile(source=None, destination=None):
if not (source and destination)==None:
with open(source, 'rb') as read:
with open(destination, 'wb') as myfile:
myfile.write(read.read())
else:
print('Please enter the source and destination paths')
copyFile(sourcePath, destinationPath)
Ez az. Most készített egy újrafelhasználható fájlmásolót a Python segítségével könyvtár használata nélkül.
A feladatok automatizálása a Python segítségével
Amellett, hogy segít a projektek építése közben a kódra összpontosítani, a fájlok Python segítségével történő másolása révén jobban megértheti a fájlkezelést a Python segítségével. A Python -feladatokkal való játék azonban javítja a Python -készségeket, különösen akkor, ha kezdő vagy.
Például megváltoztathatja a számítógépen a dátumot és az időt az os modullal. Ha akarja, akár egyéni bash parancsokat is írhat a Python segítségével.
Részvény Részvény Csipog Email Hogyan hozhat létre saját parancssori programokat a Pythonban a kattintássalSzeretne saját Python parancssori programokat készíteni, de túl nehéznek találja? Használja a Click programot, amely hasznos Python eszköz a kód egyszerűsítéséhez.
Olvassa tovább Kapcsolódó témák- Programozás
- Piton
Idowu szenvedélyes minden intelligens technológia és termelékenység iránt. Szabadidejében kódolással játszik, és ha unatkozik, sakktáblára vált, de szeret időnként elszakadni a rutintól. Szenvedélye, hogy megmutassa az embereknek a modern technológia körüljárását, motiválja őt, hogy írjon többet.
Továbbiak Idowu Omisola -tólIratkozzon fel hírlevelünkre
Csatlakozz hírlevelünkhöz, ahol technikai tippeket, véleményeket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!
Feliratkozáshoz kattintson ide