python的shutil
⑴ python的shutil.move是不是很慢
是會慢很多
shutil.move的代碼,如果src是dir,dst存在也是dir,
則先復制再刪除src,所以會很慢,操作系統中是直接移動所以快
def move(src, dst):
"""Recursively move a file or directory to another location.
If the destination is on our current filesystem, then simply use
rename. Otherwise, src to the dst and then remove src.
A lot more could be done here... A look at a mv.c shows a lot of
the issues this implementation glosses over.
"""
try:
os.rename(src, dst)
except OSError:
if os.path.isdir(src):
if destinsrc(src, dst):
raise Error, "Cannot move a directory '%s' into itself '%s'."
% (src, dst)
tree(src, dst, symlinks=True)
rmtree(src)
else:
2(src,dst)
os.unlink(src)
⑵ python shutil.什麼意思
使用這個方法專屬123456789import shutil, errno def anything(src, dst): try: shutil.tree(src, dst) except OSError as exc: # python >2.5 if exc.errno == errno.ENOTDIR: shutil.(src, dst) else: raise
⑶ python shutil.move shutil.哪個快
文件的話shutil.move快,目錄的話shutil.
由於shutil.move移動目錄時也是進行操作,然後再刪除
⑷ python shutil模塊為什麼這么少方法
用help 命令查看,
help(shutil)
⑸ 用python的shutil.rmtree()最後一個文件刪除不了,這是為什麼有什麼解決方法
shutil其實不是很健壯啊來。經常出錯。源通常是最後一個目錄不為空,或者是許可權不對,或者是你當前運行的目錄就在那個目錄,總之被佔用,被鎖,沒有許可權,不為空都刪除不了。
如果是在linux下,我們通常用os.system('rm -rf 目錄名')
在windows也可以用
del/s/q目錄名
比較少用shutil, 也比較少用os.remove這樣的函數。不過os.path.isfile這樣的函數經常用
⑹ python shutil模塊函數「file」和「」有什麼區別
file(src, dst) #src, dst 都需是文件名, 如果dst 存在或無許可權,會拋出異常
(src, dst) #dst 可以是目錄名。