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 可以是目录名。