Skopiuj plik w Pythonie
w naszych poprzednich samouczkach nauczyliśmy się kilku operacji na plikach Pythona, takich jak czytanie, pisanie i usuwanie. Naucz się kopiować plik w Pythonie w tym samouczku.
możemy skopiować plik w Pythonie przy użyciu różnych metod w ramach poniższych modułów,
-
shutil
moduł -
os
moduł -
subprocess
moduł
w tym samouczku nauczymy się używać różnych metod dostarczonych przez powyższe moduły do kopiowania pliku w Pythonie.
1. moduł shutil do kopiowania pliku w Pythonie
modułshutil
zapewnia kilka łatwych w użyciu metod, za pomocą których możemy usunąć, jak również skopiować plik w Pythonie. Spójrzmy na różne metody zdefiniowane w tym module specjalnie używane do kopiowania.
1. copyfileobj()
metoda copyfileobj()
kopiuje zawartość pliku źródłowego do pliku docelowego przy użyciu odpowiednich obiektów pliku. Przyjrzyjmy się poniższemu kodowi,
import shutilsrc_file_obj=open('src.txt', 'rb')targ_file_obj= open('targ.txt' , 'wb')shutil.copyfileobj( src_file_obj , targ_file_obj )
Uwaga: obiekty pliku powinny wskazywać pozycje 0 (pozycja początkowa) zarówno dla odpowiednich plików źródłowych, jak i docelowych, aby skopiować całą zawartość.
2. copyfile()
metoda copyfile()
kopiuje zawartość ze źródła do pliku docelowego za pomocą ścieżek do pliku. Zwraca ścieżkę pliku docelowego. Ścieżka docelowego pliku musi być zapisywalna, w przeciwnym razie wystąpi wyjątek OSerror.
import shutilshutil.copyfile( 'src.txt' , 'targ.txt' )
należy pamiętać, że metoda pozwala tylko na korzystanie ze ścieżek plików, a nie katalogów.
3. copy ()
ta metoda kopiuje plik źródłowy do pliku docelowego lub katalogu docelowego. W przeciwieństwie do copyfile()
, metoda copy()
pozwala na użycie katalogu docelowego jako argumentu, a także kopiuje uprawnienia do plików. copy()
zwraca ścieżkę do pliku docelowego po skopiowaniu zawartości.
import shutilshutil.copy('/Users/test/file.txt', '/Users/target/')
plik o nazwie 'plik.txt 'jest tworzony w docelowym miejscu docelowym z całą zawartością i uprawnieniami skopiowanymi z’ / Users / test / file.txt”.
4. copy2()
metoda copy2()
jest używana dokładnie tak samo jak metoda copy()
. Działają również w ten sam sposób, z wyjątkiem faktu, że copy2()
również kopiuje metadane z pliku źródłowego.
import shutilshutil.copy2('/Users/test/file.txt', '/Users/target/')
2. moduł os do kopiowania pliku w Pythonie
1. popen()
metoda popen()
tworzy Potok do polecenia cmd. Metoda zwraca obiekt file podłączony do potoku cmd. Spójrz na poniższy kod,
#for Windowsimport osos.popen('copy src.txt targ.txt' )
#for Linuximport osos.popen('cp src.txt targ.txt' )
Dzięki tej metodzie możemy nie tylko kopiować pliki, ale także wykonywać inne zwykłe polecenia.
2. system()
metoda system()
bezpośrednio wywołuje i wykonuje argument polecenia w powłoce podrzędnej. Jego wartość zwracana zależy od systemu operacyjnego, który uruchamia program. Dla Linuksa jest to stan zakończenia, natomiast Dla Windows jest to wartość zwracana przez powłokę systemową.
#for Linuximport osos.system(' cp src.txt targ.txt' )
#for Windowsimport osos.system(' copy src.txt targ.txt' )
3. moduł podprocesowy do kopiowania pliku w Pythonie
1. call ()
call()
metoda podobna do os.system()
bezpośrednio wywołuje lub uruchamia polecenie przekazane jako argument do funkcji.
# In Linuximport subprocesssubprocess.call('cp source.txt target.txt', shell=True)
Leave a Reply