Učit se Python? Zde je návod, jak zkopírovat soubor

Učit se Python? Zde je návod, jak zkopírovat soubor

Chcete zlepšit své dovednosti v Pythonu? Poté se můžete pokusit provést některé úkoly na počítači pomocí Pythonu. Kopírování a vkládání souborů z jednoho adresáře do druhého pomocí Pythonu je zábavný způsob, jak to udělat.





Kromě toho, že je zábavný, umožňuje vám rychle číst a zapisovat soubory, aniž byste se museli rozptylovat od svého kódu. Pokud jste v Pythonu nováčkem, je to dovednost, kterou budete možná ještě muset vyzvednout tak či onak. Pojďme tedy zjistit, jak kopírovat soubory pomocí Pythonu prostřednictvím tohoto příspěvku.





Požadavky na kopírování souborů pomocí Pythonu

Existuje mnoho způsobů, jak kopírovat a vkládat soubory pomocí Pythonu. Požadavek na provedení se tedy liší a závisí na metodě, kterou se rozhodnete použít.





I když ke kopírování souborů pomocí Pythonu možná nebudete potřebovat další moduly, můžete přesto použít vestavěné knihovny, pokud chcete.

Pokud například chcete použít vy metodu, musíte ji importovat do kódu. Jedním z populárních způsobů kopírování souborů v Pythonu je však použití souboru shutil knihovna.



Podívejme se, jak můžeme pomocí těchto různých metod kopírovat soubory pomocí Pythonu.

Jak kopírovat soubory pomocí vestavěné knihovny Shutil v Pythonu

The shutil modul je vestavěná a výkonná knihovna Pythonu pro rychlé čtení a zápis souborů v Pythonu.





Chcete -li jej použít, stačí zadat úplnou cestu ke zdrojovým a cílovým souborům.

hlavní panel zobrazující se na celé obrazovce Windows 10

V podstatě, shutil má tento formát:





shutil.copy([source directory path], [destination directory path], follow_symlinks=True)

Například níže uvedený kód používá shutil.copy () zkopírovat soubor s názvem copy.txt ze složky s názvem moje_složka do jiného pojmenovaného destinace . Poté přejmenuje cílový soubor na 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)

Všimněte si toho, že svůj kód můžete napsat do libovolného editoru kódu podle vašeho výběru. Poté jej můžete spustit pomocí příkazového řádku.

Pokud však nejste obeznámeni se spuštěním Pythonu pomocí příkazového řádku, můžete také použít výchozí IDLE (Python Integrated Development Environment).

Příbuzný: Příkazy příkazového řádku (CMD), které musíte znát

The shutil.copy metoda nekopíruje metadata zdrojového souboru. V podstatě váš počítač vidí cílový soubor jako zcela nový a dává mu nová metadata.

Ke zkopírování metadat spolu s původním souborem však použijte soubor shutil.copy2 metoda:

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

Výše uvedená metoda zachovává původní metadata starého souboru v cílovém souboru. Cílový soubor si například zachová datum vytvoření zdrojového souboru, jeho velikost a další atributy.

The follow_symlinks argument je deklarace symbolického odkazu, která umožňuje shutil následovat absolutní cestu. Proto je musíte zahrnout, pokud jsou zdrojové a cílové soubory v různých adresářích.

Pokud jsou ale oba soubory ve vašem aktuálním pracovním adresáři, nemusíte soubor follow_symlinks . Pokud tak učiníte, Python vyvolá výjimku syntaxe.

jak ukládat videa na twitter

Pokud tedy vkládáte zdrojový soubor do aktuálního pracovního adresáře, váš kód by měl vypadat takto:

import shutil
shutil.copy2(sourceFile, destinationFile)

Kromě výše uvedených metod shutil můžete také použít shutil.copyfile nebo shutil.copyfileobj .

Použitím shutil.copyfileobj je trochu jiný, protože vyžaduje vestavěný otevřeno funkce. Potom musíte číst a zapisovat binárně zahrnutím 'rb' a 'wb' argumenty.

Podívejme se, jak shutil.copyfileobj metoda funguje pomocí stejných adresářů, které jsme použili dříve:

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)

Všimněte si, že shutil.copyfileobj () nevyžaduje follow_symlinks argument.

Nicméně, shutil.copyfile () funguje docela stejně .kopírovat a .copy2 dělá. Liší se jen nepatrně svými vnitřními funkcemi.

Chcete -li použít shutil.copyfile () metoda:

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

Jak kopírovat soubory pomocí modulu os

The vy modul používá ke kopírování souborů dvě předdefinované metody; os.system () a os.popen () metody.

The os.system () metoda umožňuje napodobit prostředí příkazového řádku.

Nedostatkem metod os je však to, že kopírují pouze soubory v aktuálním pracovním adresáři.

Chcete -li použít os.system () metoda ve Windows:

import os
os.system('copy source.txt destination.txt)

Můžete také použít vestavěný xcopy Příkaz terminálu Windows:

import os
os.system('xcopy source.txt destination.txt)

Chcete -li použít os.systému metoda na Linuxu, nahraďte kopírovat s cp :

import os
os.system('cp source.txt destination.txt)

Jak kopírovat soubory pomocí metody os.popen

Chcete -li použít tuto metodu, nahraďte ji os.system () s os.popen () .

V systému Windows použijte:

import os
os.popen('copy source.txt destination.txt)

Stejně jako u nás os.system () , vyměnit kopírovat s cp použít tuto metodu na Linuxu:

import os
os.popen('cp source.txt destination.txt)

Jak kopírovat soubory pomocí modulu podprocesu Pythonu

Kromě výše uvedených metod můžete také použít podproces () knihovna pro kopírování souborů v Pythonu:

import subprocess as sp
sp.call('copy sourceFile destinationFile', shell=True)

V systému Linux však použijte:

import subprocess as sp
sp.call('cp sourceFile destinationFile', shell=True)

The podproces knihovna také používá subprocess.check_out () metoda. Funguje to stejně subprocess.call () dělá:

import subprocess as sp
sp.check_out('copy sourceFile destinationFile', shell=True)

V Linuxu nahraďte kopírovat s cp :

import subprocess as sp
sp.check_out('cp sourceFile destinationFIle', shell=True)

Stejně jako metody os, ale i metody podprocesu fungují pouze se soubory ve vašem aktuálním pracovním adresáři.

Poznámka: Soubory můžete také kopírovat do složky, pokud je ve stejném pracovním adresáři jako zdrojový soubor. Vše, co musíte udělat, je nahradit cílový název souboru názvem cílové složky. Ujistěte se však, že cílová složka a zdrojový soubor jsou ve vašem aktuálním pracovním adresáři.

Jak kopírovat soubory v Pythonu bez použití knihoven

Soubory můžete také kopírovat v Pythonu bez závislosti na jakékoli knihovně. Stejně jako metoda shutil potřebujete pouze úplné cesty zdrojového a cílového adresáře.

jak otevřít ps4 k čištění

Zde je postup, jak toho dosáhnout:

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

Aby byl kód znovu použitelný, můžete jej upravit na funkci:

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)

A je to. Právě jste vytvořili opakovaně použitelnou kopírku souborů v Pythonu bez použití jakékoli knihovny.

Udržujte automatizaci úloh s Pythonem

Kromě toho, že vám kopírování souborů pomocí Pythonu pomůže soustředit se na váš kód, vám umožní lépe porozumět správě souborů s Pythonem. Pohrávání si s úkoly v Pythonu je však způsob, jak zlepšit své dovednosti v Pythonu, zvláště pokud jste začátečník.

Pomocí modulu os můžete například změnit datum a čas na počítači. Pokud chcete, můžete s Pythonem dokonce psát vlastní příkazy bash.

Podíl Podíl tweet E-mailem Jak vytvořit vlastní programy příkazového řádku v Pythonu kliknutím

Chcete si vytvořit vlastní programy příkazového řádku Pythonu, ale připadá vám to příliš náročné? K zefektivnění kódu použijte Click, užitečný nástroj Pythonu.

Číst dále
Související témata
  • Programování
  • Krajta
O autorovi Idisou Omisola(94 publikovaných článků)

Idowu je zapálený pro cokoli chytrého a produktivního. Ve svém volném čase si hraje s kódováním a když se nudí, přepne na šachovnici, ale také se rád jednou za čas odpoutá od rutiny. Jeho vášeň ukazovat lidem cestu kolem moderních technologií ho motivuje psát více.

Více od Idowu Omisola

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!

Kliknutím sem se přihlásíte k odběru