Uczysz się Pythona? Oto jak skopiować plik

Uczysz się Pythona? Oto jak skopiować plik

Chcesz poprawić swoje umiejętności Pythona? Następnie możesz spróbować wykonać kilka zadań na swoim komputerze za pomocą Pythona. Kopiowanie i wklejanie plików z jednego katalogu do drugiego za pomocą Pythona to świetny sposób na zrobienie tego.





Oprócz dobrej zabawy umożliwia szybkie odczytywanie i zapisywanie plików bez rozpraszania się kodem. Jeśli jesteś nowy w Pythonie, jest to umiejętność, której nadal możesz potrzebować w taki czy inny sposób. Dowiedzmy się więc, jak kopiować pliki za pomocą Pythona w tym poście.





Wymagania dotyczące kopiowania plików za pomocą Pythona

Istnieje wiele sposobów kopiowania i wklejania plików za pomocą Pythona. Tak więc wymagania dotyczące tego są różne i zależą od metody, którą zdecydujesz się użyć.





Chociaż możesz nie potrzebować dodatkowych modułów do kopiowania plików za pomocą Pythona, nadal możesz korzystać z wbudowanych bibliotek, jeśli chcesz.

Na przykład, jeśli chcesz użyć ty metody, musisz ją zaimportować do swojego kodu. Jednak jednym z popularnych sposobów kopiowania plików za pomocą Pythona jest użycie żaluzja Biblioteka.



Zobaczmy, jak możemy wykorzystać te różne metody do kopiowania plików za pomocą Pythona.

Jak kopiować pliki za pomocą wbudowanej biblioteki Shutil w Pythonie?

ten żaluzja module to wbudowana i potężna biblioteka Pythona do szybkiego czytania i pisania plików w Pythonie.





Aby z niego skorzystać, wystarczy podać pełną ścieżkę plików źródłowych i docelowych.

jak zrobić nowy adres e-mail

W istocie, żaluzja przyjmuje ten format:





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

Na przykład poniższy kod używa kopia.kopia () skopiować plik o nazwie kopia.txt z folderu o nazwie mój folder do innego o nazwie Miejsce docelowe . Następnie zmienia nazwę pliku docelowego na nowyPlik.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)

Zauważ, że możesz napisać swój kod w dowolnym edytorze kodu. Następnie możesz go uruchomić za pomocą wiersza poleceń.

Możesz jednak również użyć domyślnego zintegrowanego środowiska programistycznego Python (IDLE), jeśli nie znasz obsługi języka Python za pomocą wiersza poleceń.

Związane z: Polecenia wiersza polecenia (CMD), które musisz znać

ten kopia.kopia Metoda nie kopiuje metadanych pliku źródłowego. Zasadniczo twój komputer postrzega plik docelowy jako całkowicie nowy i nadaje mu nowe metadane.

Aby jednak skopiować metadane wraz z oryginalnym plikiem, użyj shutil.copy2 metoda:

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

Powyższa metoda zachowuje oryginalne metadane starego pliku w pliku docelowym. Na przykład plik docelowy zachowuje datę utworzenia pliku źródłowego, jego rozmiar i inne atrybuty.

ten follow_symlinks argument jest deklaracją dowiązania symbolicznego, która pozwala żaluzja podążaj ścieżką bezwzględną. Dlatego musisz go dołączyć, jeśli pliki źródłowe i docelowe znajdują się w różnych katalogach.

Ale jeśli oba pliki znajdują się w twoim bieżącym katalogu roboczym, nie musisz dołączać follow_symlinks . Jeśli to zrobisz, Python zgłosi wyjątek składni.

jak zabezpieczyć hasłem plik zip windows 10

Tak więc, jeśli wklejasz plik źródłowy do bieżącego katalogu roboczego, twój kod powinien wyglądać tak:

import shutil
shutil.copy2(sourceFile, destinationFile)

Oprócz korzystania z powyższych metod shutil możesz również użyć shutil.copyfile lub shutil.copyfileobj .

Za pomocą shutil.copyfileobj jest nieco inny, ponieważ wymaga wbudowanego otwarty funkcjonować. Następnie musisz czytać i pisać plik binarny, dołączając „rb” oraz „wb” argumenty.

Zobaczmy, jak shutil.copyfileobj metoda działa przy użyciu tych samych katalogów, których używaliśmy wcześniej:

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)

Zauważ, że shutil.copyfileobj () nie wymaga follow_symlinks argument.

Jednakże, shutil.copyfile () działa w ten sam sposób .Kopiuj oraz .kopia2 czy. Różnią się tylko nieznacznie w swoich funkcjach wewnętrznych.

Aby użyć 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 kopiować pliki za pomocą modułu systemu operacyjnego

ten ty moduł wykorzystuje dwie wbudowane metody kopiowania plików; os.system() oraz os.popen () metody.

ten os.system() Metoda pozwala na naśladowanie środowiska wiersza poleceń.

Jednak wadą metod systemu operacyjnego jest to, że kopiują one tylko pliki w bieżącym katalogu roboczym.

Aby użyć os.system() metoda w systemie Windows:

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

Możesz także skorzystać z wbudowanego xcopy Polecenie terminala Windows:

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

Aby użyć os.system metoda w systemie Linux, zamień Kopiuj z cp :

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

Jak kopiować pliki za pomocą metody os.popen

Aby skorzystać z tej metody, wymień os.system() z os.popen () .

W systemie Windows użyj:

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

Jak zrobiliśmy z os.system() , wymienić Kopiuj z cp aby użyć tej metody w systemie Linux:

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

Jak kopiować pliki za pomocą modułu podprocesów Pythona

Oprócz powyższych metod możesz również użyć podproces() biblioteka do kopiowania plików w Pythonie:

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

Jednak w systemie Linux użyj:

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

ten podproces biblioteka również używa subprocess.check_out() metoda. Działa w ten sam sposób podproces.call () czy:

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

W systemie Linux zastąp Kopiuj z cp :

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

Jednak, podobnie jak metody systemu operacyjnego, metody podprocesów działają tylko z plikami w bieżącym katalogu roboczym.

Notatka: Możesz także skopiować pliki do folderu, jeśli znajduje się on w tym samym katalogu roboczym, co plik źródłowy. Wszystko, co musisz zrobić, to zastąpić nazwę pliku docelowego nazwą folderu docelowego. Upewnij się jednak, że folder docelowy i plik źródłowy znajdują się w bieżącym katalogu roboczym.

Jak kopiować pliki w Pythonie bez korzystania z bibliotek?

Możesz także kopiować pliki w Pythonie bez zależności od żadnej biblioteki. Podobnie jak w przypadku metody Shutil, potrzebujesz tylko pełnych ścieżek katalogów źródłowych i docelowych.

jak otworzyć ps4 do czyszczenia

Oto jak to osiągnąć:

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 kod mógł być ponownie użyty , możesz zmodyfikować go w funkcję:

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)

Otóż ​​to. Właśnie stworzyłeś kopiarkę plików wielokrotnego użytku za pomocą Pythona bez użycia żadnej biblioteki.

Automatyzuj zadania za pomocą Pythona

Oprócz pomagania w skupieniu się na kodzie podczas tworzenia projektów, kopiowanie plików za pomocą Pythona pozwala lepiej zrozumieć zarządzanie plikami za pomocą Pythona. Jednak zabawa z zadaniami Pythona jest sposobem na poprawę umiejętności Pythona, zwłaszcza jeśli jesteś początkującym.

Na przykład możesz zmienić datę i godzinę na swoim komputerze za pomocą modułu os. Możesz nawet pisać niestandardowe polecenia bash za pomocą Pythona, jeśli chcesz.

Udział Udział Ćwierkać E-mail Jak tworzyć własne programy wiersza poleceń w Pythonie za pomocą Click?

Chcesz tworzyć własne programy wiersza poleceń w Pythonie, ale uważasz to za zbyt trudne? Użyj Click, przydatnego narzędzia Pythona, aby usprawnić swój kod.

Czytaj dalej
Powiązane tematy
  • Programowanie
  • Pyton
O autorze Idisou Omisola(94 opublikowane artykuły)

Idowu pasjonuje się każdą inteligentną technologią i produktywnością. W wolnych chwilach bawi się kodowaniem, a gdy się nudzi, przechodzi na szachownicę, ale od czasu do czasu uwielbia też oderwać się od rutyny. Jego pasja do pokazywania ludziom drogi do nowoczesnych technologii motywuje go do pisania więcej.

Więcej od Idowu Omisola

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować