W przypadku pliku os.rename lub shutil.move należy zaimportować moduł. Znak * nie jest wymagany, aby przenieść wszystkie pliki.
Mamy folder w/opt/awesome nazwie źródła z jednym plikiem o nazwie awesome.txt.
in /opt/awesome
○ → ls
source
○ → ls source
awesome.txt
python
>>> source = '/opt/awesome/source'
>>> destination = '/opt/awesome/destination'
>>> import os
>>> os.rename(source, destination)
>>> os.listdir('/opt/awesome')
['destination']
Użyliśmy os.listdir aby zobaczyć, że nazwa folderu w rzeczywistości zmieniło. Oto zamknięcie przesuwające cel z powrotem do źródła.
>>> import shutil
>>> shutil.move(destination, source)
>>> os.listdir('/opt/awesome/source')
['awesome.txt']
Tym razem sprawdziłem w folderze źródłowym, aby upewnić się, że utworzony plik awesome.txt istnieje. Jest tam :)
Teraz przenieśliśmy folder i jego pliki ze źródła do miejsca docelowego iz powrotem.
dla tych, którzy znają polecenie [gnu-coreutils] 'mv' (https://www.gnu.org/software/coreutils/manual/html_node/mv-invocation.html), python's' shutil.move 'ma jeden przypadek krawędzi, w którym funkcja' shutil.move' różni się. [Przejdź tutaj w celu pełnego napisania] (https://stackoverflow.com/questions/31813504). ** W skrócie, 'shutil Pythona.move' podniesie wyjątek (ale gnu-coreutils 'mv' nie będzie) ** kiedy twój cel jest katalogiem, a katalog ma już plik o tej samej nazwie co źródło (ponownie po więcej informacji zobacz link podany w poprzednie zdanie). –