python shutil.move移動文件或目錄方式
背景
shutil.move可以實現(xiàn)文件或者目錄的移動。
打?。?/p>
import shutil help(shutil.move) # 打印如下: ''' move(src, dst, copy_function=<function copy2 at 0x000001D1CE15F8C8>) Recursively move a file or directory to another location. This is similar to the Unix "mv" command. Return the file or directory's destination. If the destination is a directory or a symlink to a directory, the source is moved inside the directory. The destination path must not already exist. If the destination already exists but is not a directory, it may be overwritten depending on os.rename() semantics. If the destination is on our current filesystem, then rename() is used. Otherwise, src is copied to the destination and then removed. Symlinks are recreated under the new name if os.rename() fails because of cross filesystem renames. The optional `copy_function` argument is a callable that will be used to copy the source or it will be delegated to `copytree`. By default, copy2() is used, but any function that supports the same signature (like copy()) can be used. A lot more could be done here... A look at a mv.c shows a lot of the issues this implementation glosses over. '''
查看shutil.move函數(shù):
def move(src, dst, copy_function=copy2): """Recursively move a file or directory to another location. This is similar to the Unix "mv" command. Return the file or directory's destination. If the destination is a directory or a symlink to a directory, the source is moved inside the directory. The destination path must not already exist. If the destination already exists but is not a directory, it may be overwritten depending on os.rename() semantics. If the destination is on our current filesystem, then rename() is used. Otherwise, src is copied to the destination and then removed. Symlinks are recreated under the new name if os.rename() fails because of cross filesystem renames. The optional `copy_function` argument is a callable that will be used to copy the source or it will be delegated to `copytree`. By default, copy2() is used, but any function that supports the same signature (like copy()) can be used. A lot more could be done here... A look at a mv.c shows a lot of the issues this implementation glosses over. """ real_dst = dst if os.path.isdir(dst): if _samefile(src, dst): # We might be on a case insensitive filesystem, # perform the rename anyway. os.rename(src, dst) return real_dst = os.path.join(dst, _basename(src)) if os.path.exists(real_dst): raise Error("Destination path '%s' already exists" % real_dst) try: os.rename(src, real_dst) except OSError: if os.path.islink(src): linkto = os.readlink(src) os.symlink(linkto, real_dst) os.unlink(src) elif os.path.isdir(src): if _destinsrc(src, dst): raise Error("Cannot move a directory '%s' into itself" " '%s'." % (src, dst)) copytree(src, real_dst, copy_function=copy_function, symlinks=True) rmtree(src) else: copy_function(src, real_dst) os.unlink(src) return real_dst
移動目錄
shutil.move(old,new)用來移動:文件夾:
old | 是一個目錄 |
---|---|
new | 是一個存在的目錄,這時會把old目錄移動到new下面;可以new也可以是一個不存在的目錄,這時會創(chuàng)建這個不存在的目錄,然后把old目錄下面的所有文件移動到創(chuàng)建的目錄里面。 |
舉例:
import shutil # 移動目錄 shutil.move("./folder_123","./folder_456")
./folder_123:
-------------------目錄一定要存在,否則報錯;
./folder_456:
-------------------目錄不存在時,創(chuàng)建該目錄,并將./folder_123目錄下的文件移動到./folder_456目錄下;
-------------------目錄存在時,將folder_123文件夾移動到folder_456文件夾內(nèi);
移動文件
shutil.move(old,new)用來移動:文件:
old | 是一個文件路徑 |
---|---|
new | new是一個存在的文件夾路徑或是一個存在的文件夾路徑加文件名 |
注意:
- new如果是一個不存在的文件夾路徑,則會將原文件移動到new文件夾上一目錄中,且以該文件夾的名字重命名。
- new如果是一個不存在的文件夾路徑加文件名,則會報錯。
舉例:
import shutil # 移動文件 shutil.move("./mask/sample.jpg","./folder_456/folder_789")
./mask/sample.jpg:
-------------------路徑一定要存在,否則報錯;
./folder_456/folder_789:
-------------------目錄存在時,將./mask/sample.jpg文件移動到./folder_456/folder_789目錄下;
-------------------目錄不存在時,具體:folder_456存在,folder_789不存在時,將./mask/sample.jpg移動到folder_456文件夾下,并將sample.jpg文件改名為folder_789;
-------------------目錄不存在時,具體:folder_456不存在,folder_789不存在時,報錯!
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
python實現(xiàn)七段數(shù)碼管和倒計時效果
今天小編就為大家分享一篇python實現(xiàn)七段數(shù)碼管和倒計時效果,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11pytorch: tensor類型的構建與相互轉(zhuǎn)換實例
今天小編就為大家分享一篇pytorch: tensor類型的構建與相互轉(zhuǎn)換實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07python實現(xiàn)異步回調(diào)機制代碼分享
本文介紹了python實現(xiàn)異步回調(diào)機制的功能,大家參考使用吧2014-01-01OpenCV學習記錄python實現(xiàn)連通域處理函數(shù)
這篇文章主要為大家介紹了OpenCV學習記錄python實現(xiàn)連通域處理函數(shù)cv2.connectedComponentsWithStats()和cv2.connectedComponents()的使用示例詳解2022-06-06Jupyter Notebook折疊輸出的內(nèi)容實例
這篇文章主要介紹了Jupyter Notebook折疊輸出的內(nèi)容實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04pandas 轉(zhuǎn)換成行列表進行讀取與Nan處理的方法
今天小編就為大家分享一篇pandas 轉(zhuǎn)換成行列表進行讀取與Nan處理的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10