close

在 Python 中復製文件/文件夾
拷貝文件
我們使用shutil.copy(source, destination) 將源文件複製到目標文件夾。

*筆記:
– 此函數返回複製文件的路徑。
– 如果目標是文件名,它將用作複製文件的新名稱。

>>> import shutil
>>> shutil.copy('D:\\grokonez\\tutorials-list.txt', 'D:\\grokonez\\Basics\\')
'D:\\grokonez\\Basics\\tutorials-list.txt'

# destination is a filename
>>> shutil.copy('D:\\grokonez\\tutorials-list.txt', 'D:\\grokonez\\Basics\\tutorials.txt')
'D:\\grokonez\\Basics\\tutorials.txt'
複製文件夾
我們使用shutil.copytree(source, destination) 將源文件夾中的整個文件夾(包括其中的所有文件夾和文件)複製到目標文件夾。
>>> import shutil
>>> shutil.copytree('D:\\Python Files', 'D:\\Python\\Basic Tutorials')
'D:\\Python\\Basic Tutorials'

 

 

 

*筆記:
– 此函數返回複製文件夾的路徑。
– 如果目標文件夾已存在,該函數將拋出 FileExistsError 錯誤。

在 Python 中移動文件/文件夾
我們使用shutil.move(source, destination) 將文件或文件夾(包括其中的所有文件夾和文件)移動到目標文件夾。

*筆記:
– 此函數返回新位置的路徑。
– 如果目標是文件名或不存在的文件夾,它將用作移動文件/文件夾的新名稱。
– 如果目標中已經存在具有相同文件名的文件/文件夾,則會引發錯誤。
– 重要提示:如果我們將文件移動到不存在的文件夾中,則該文件將被移動並重命名而沒有文件擴展名。

>>> import shutil

# file
>>> shutil.move('D:\\tutorials-list.txt', 'D:\\grokonez')
'D:\\grokonez\\tutorials-list.txt'
# folder

>>> shutil.move('D:\\Basics', 'D:\\grokonez')
'D:\\grokonez\\Basics'

# move file and rename
>>> shutil.move('D:\\tutorials-list.txt', 'D:\\grokonez\\list.txt')
'D:\\grokonez\\list.txt'

# 'tutorials-list.txt' is already in 'D:\grokonez' folder
>>> shutil.move('D:\\tutorials-list.txt', 'D:\\grokonez')
# shutil.Error: Destination path 'D:\grokonez\tutorials-list.txt' already exists

# 'D:\grokonez\list' doesn't exist
>>> shutil.move('D:\\tutorials-list.txt', 'D:\\grokonez\\list')
'D:\\grokonez\\list'
# 'tutorials-list.txt' is changed to 'list' (file)

在 Python 中重命名文件/文件夾
我們可以使用shutil.move(source, destination) 和source 相同的destination 來重命名文件或文件夾。

>>> import shutil

# rename file
>>> shutil.move('D:\\grokonez\\Basics\\tutorials.txt', 'D:\\grokonez\\Basics\\posts.txt')
'D:\\grokonez\\Basics\\posts.txt'

# rename folder
>>> shutil.move('D:\\grokonez\\Basic Tutorials', 'D:\\grokonez\\BasicTuts')
'D:\\grokonez\\BasicTuts'

 

在 Python 中刪除文件/文件夾
對於特定情況,我們有 3 個函數:
– os.unlink(path):刪除路徑中的文件。
– os.rmdir(path):刪除路徑中的文件夾(必須為空)。
– shutil.rmtree(path):刪除路徑中的文件夾(包括其中的所有文件和文件夾)。

 
>>> import os
# delete file
>>> os.unlink('D:\\grokonez\\list.txt')

# delete empty folder
>>> os.rmdir('D:\\grokonez\\Basic Tutorials')
# not empty folder -> throw an error
>>> os.rmdir('D:\\grokonez\\BasicTuts')
Traceback (most recent call last):
  File "", line 1, in 
OSError: [WinError 145] The directory is not empty: 'D:\\grokonez\\BasicTuts'

# delete folder with files and subfolders inside
>>> import shutil
>>> shutil.rmtree('D:\\grokonez\\BasicTuts')

安全刪除
我們可以使用第三方 send2trash 模塊,而不是永久刪除文件/文件夾,該模塊將文件或文件夾放入垃圾箱或回收站。

首先,我們需要安裝 send2trash 模塊,打開 cmd,然後運行:
pip 安裝 send2trash

安裝成功後,我們可以在 Python\Python[version]\Lib\site-packages 中看到 send2trash 文件夾。
現在我們要導入模塊並使用它的 send2trash() 函數:

>>> import send2trash
>>> send2trash.send2trash('D:\\grokonez\\tutorials-list.txt')
arrow
arrow
    文章標籤
    python
    全站熱搜

    nL 發表在 痞客邦 留言(0) 人氣()