Czy chcesz poprawić swoje umiejętności w Pythonie? 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 tego, że jest zabawny, pozwala szybko czytać i pisać pliki bez odrywania się od kodu. Jeśli jesteś nowy w Pythonie, jest to umiejętność, której możesz potrzebować w taki czy inny sposób. Zobaczmy więc, jak kopiować pliki za pomocą Pythona za pośrednictwem tego posta.
Wymagania dotyczące kopiowania plików w języku Python
Istnieje wiele sposobów kopiowania i wklejania plików za pomocą Pythona. Zatem wymóg wykonania tego jest różny i zależy 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 używać wbudowanych bibliotek, jeśli chcesz.
Na przykład, jeśli chcesz użyć os musisz zaimportować ją do swojego kodu. Jednak jednym z popularnych sposobów kopiowania plików w Pythonie jest użycie rozszerzenia shutil biblioteka.
Zobaczmy, jak możemy użyć tych różnych metod do kopiowania plików za pomocą Pythona.
Jak kopiować pliki za pomocą wbudowanej biblioteki Shutil w języku Python
Plik shutil module to wbudowana i potężna biblioteka Pythona do szybkiego odczytu i zapisu plików w Pythonie.
Aby z niego skorzystać, wystarczy podać pełną ścieżkę do plików źródłowych i docelowych.
W istocie shutil przyjmuje ten format:
shutil.copy ([ścieżka katalogu źródłowego], [ścieżka katalogu docelowego], follow_symlinks = True)
Na przykład poniższy kod używa shutil.copy () skopiować plik o nazwie copy.txt z folderu o nazwie mój folder na inny nazwany Miejsce docelowe. Następnie zmienia nazwę pliku docelowego na nowy plik.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)
Pamiętaj, że możesz napisać swój kod w dowolny wybrany edytor kodu. Następnie możesz go uruchomić za pomocą wiersza poleceń.
Możesz jednak użyć domyślnego zintegrowanego środowiska programistycznego Python (IDLE), jeśli nie jesteś zaznajomiony z uruchamianiem Pythona za pomocą wiersza poleceń.
Związane z: Polecenia wiersza polecenia (CMD), które musisz znać
Plik shutil.copy metoda nie kopiuje metadanych pliku źródłowego. Zasadniczo twój komputer postrzega plik docelowy jako całkowicie nowy i nadaje mu nowe metadane.
Jednak aby skopiować metadane wraz z oryginalnym plikiem, użyj rozszerzenia 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.
Plik follow_symlinks argument jest deklaracją dowiązania symbolicznego, która pozwala shutil podążaj absolutną ścieżką. Dlatego musisz go uwzględnić, 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ć pliku follow_symlinks. Jeśli to zrobisz, Python zgłosi wyjątek składni.
Jeśli więc wklejasz plik źródłowy do bieżącego katalogu roboczego, kod powinien wyglądać następująco:
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 wbudowania otwarty funkcjonować. Następnie musisz czytać i zapisywać pliki binarne, włączając rozszerzenie „rb” i „wb” argumenty.
Zobaczmy, jak shutil.copyfileobj metoda działa na tych samych katalogach, 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, shutil.copyfile () działa w ten sam sposób .Kopiuj i .copy2 robi. Różnią się jedynie nieznacznie funkcjami wewnętrznymi.
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 os
Plik os moduł wykorzystuje dwie wbudowane metody do kopiowania plików; os.system () i os.popen () metody.
Plik os.system () 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 użyć wbudowanego xcopy Polecenie terminala systemu Windows:
import os
os.system ('xcopy source.txt destination.txt)
Aby użyć os.system w systemie Linux, zamień Kopiuj z cp:
import os
os.system ('cp source.txt destination.txt)
Jak kopiować pliki przy użyciu metody os.popen
Aby skorzystać z tej metody, zamień os.system () z os.popen ().
W systemie Windows użyj:
import os
os.popen ('kopiuj źródło.txt miejsce_docelowe.txt)
Tak jak zrobiliśmy z os.system (), zastąpić Kopiuj z cp aby użyć tej metody w systemie Linux:
import os
os.popen ('cp source.txt destination.txt)
Jak skopiować pliki za pomocą modułu podprocesu Pythona
Oprócz powyższych metod możesz również użyć podproces () biblioteka do kopiowania plików w Pythonie:
import podprocesu jako sp
sp.call ("copy sourceFile destinationFile", shell = True)
Jednak w systemie Linux użyj:
import podprocesu jako sp
sp.call ("cp sourceFile destinationFile", shell = True)
Plik podproces Biblioteka również używa subprocess.check_out () metoda. Działa w ten sam sposób subprocess.call () robi:
import podprocesu jako sp
sp.check_out ("copy sourceFile destinationFile", shell = True)
W systemie Linux wymień Kopiuj z cp:
import podprocesu jako sp
sp.check_out ("cp sourceFile destinationFIle", shell = True)
Jednak, podobnie jak metody systemu operacyjnego, metody podprocesu działają tylko z plikami w bieżącym katalogu roboczym.
Uwaga: Możesz także skopiować pliki do folderu, jeśli znajduje się 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 konieczności korzystania z żadnej biblioteki. Podobnie jak w przypadku metody shutil, potrzebujesz tylko pełnych ścieżek do katalogów źródłowych i docelowych.
Oto jak to osiągnąć:
sourcePath = "C: /Users/source_directories/my_folder/copy.txt"
destinationPath = "C: /Users/some_directories/destination_directories/newFile.txt"
z otwartym (sourcePath, „rb”) jako przeczytane:
z open (destinationPath, „wb”) jako myfile:
myfile.write (read.read ())
Do uczynić kod wielokrotnym użyciem, możesz go zmodyfikować na funkcję:
def copyFile (source = None, destination = None):
jeśli nie (źródło i cel) == Brak:
z otwartym (source, „rb”) jako przeczytane:
z otwartym (miejsce docelowe, „wb”) jako myfile:
myfile.write (read.read ())
jeszcze:
print ("Wprowadź ścieżkę źródłową i docelową")
copyFile (ścieżka_źródłowa, ścieżka_docelowa)
Otóż to. Właśnie utworzyłeś kopiarkę plików wielokrotnego użytku w Pythonie bez użycia żadnej biblioteki.
Kontynuuj automatyzację zadań w Pythonie
Oprócz pomocy w skupieniu się na kodzie podczas tworzenia projektów, kopiowanie plików w Pythonie pozwala lepiej zrozumieć zarządzanie plikami w Pythonie. Jednak zabawa z zadaniami w Pythonie 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 komputerze za pomocą modułu systemu operacyjnego. Jeśli chcesz, możesz nawet pisać niestandardowe polecenia bash w Pythonie.
Chcesz tworzyć własne programy wiersza poleceń w języku Python, ale jest to dla Ciebie zbyt trudne? Użyj Click, użytecznego narzędzia Pythona, aby usprawnić swój kod.
- Programowanie
- Pyton
Idowu jest pasjonatem wszystkiego, co inteligentne technologie i produktywność. W wolnym czasie bawi się kodowaniem, nudzi się szachownicą, ale uwielbia też od czasu do czasu oderwać się od rutyny. Jego pasja do wskazywania ludziom drogi wokół nowoczesnych technologii motywuje go do pisania więcej.
Zapisz się do naszego newslettera
Dołącz do naszego biuletynu, aby otrzymywać wskazówki techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!
Jeszcze jeden krok…!
Potwierdź swój adres e-mail w wiadomości e-mail, którą właśnie wysłaliśmy.