和shutil.copytree公司我可以将一个包含文件和文件夹的整个目录复制到其内部的文件夹中,同时忽略某些文件夹和其中的内容。在
source = htpc.root
destination = os.path.join(htpc.root, "old")
shutil.copytree(source, destination, ignore=shutil.ignore_patterns('userdata', 'old'))
有没有一种方法可以做到这一点,除了移动而不是复制,这样我就只剩下userdata和old在根目录中,所有旧文件和文件夹都在old中。任何帮助都很好。谢谢
shutil
模块不提供该功能。在您可以在文件中看到
copytree()
函数和其他函数:shutil.py
。在可能位于:
/usr/local/python2.6/shutil.py
有9个函数,shutil pydoc。在
因为copytree已经非常接近您的需要,所以我将copytree()克隆到一个新函数,然后将其调整为move而不是copy。在
为此:
在系统上查找
shutil.py
,并在文本编辑器/IDE中打开。在找到下面这句话:
将所有内容从这里复制到copytree函数的末尾。在
然后将其粘贴到代码中,并将其重命名为}。在
def moveWithIgnore(src, ...
或{原始copytree()函数顶部的注释说copy2()执行“工作”。在
shutils.py
中,可以看到它以(src, dst)
作为参数。在在航天飞机中还有
move()
函数,它也采用(src, dst)
。在新的moveWithIgnore
函数中,用copy2
交换move
是安全的。在原始的
copytree()
函数使用递归(它调用自己)。请确保更新新函数中的代码行,以便它调用自己而不是copyretree。在我相信你可以从这里拿走:-)
相关问题 更多 >
编程相关推荐