Python 2.7.3:复制符号链接,但不要';我跟不上
我正在使用Python 2.7.3。我正在编写一个Python脚本,将目录树的一部分从一个位置复制到另一个位置。需要复制的一些文件是符号链接 如何使用Python将符号链接从一个位置复制到另一个位置而不遵循它们?(我只是希望它盲目地复制它们,就像它们是“常规”文件一样) 我发现Python3.3的Python 2.7.3:复制符号链接,但不要';我跟不上,python,linux,python-2.7,symlink,Python,Linux,Python 2.7,Symlink,我正在使用Python 2.7.3。我正在编写一个Python脚本,将目录树的一部分从一个位置复制到另一个位置。需要复制的一些文件是符号链接 如何使用Python将符号链接从一个位置复制到另一个位置而不遵循它们?(我只是希望它盲目地复制它们,就像它们是“常规”文件一样) 我发现Python3.3的shutil.copy()支持参数follow\u symlinks=False,但较旧版本的shutil不支持 编辑:更多详细信息: 此脚本的目的是从指定位置获取所有文件,并将它们拆分为单独的存档。我
shutil.copy()
支持参数follow\u symlinks=False
,但较旧版本的shutil不支持
编辑:更多详细信息:
此脚本的目的是从指定位置获取所有文件,并将它们拆分为单独的存档。我知道我可以通过压缩整个目录并拆分归档文件来做到这一点,但我需要能够单独提取每个归档文件,而无需重新合并到一个大归档文件中。此外,每个存档文件必须小于指定的大小
基本方法:
ignore
允许您提供一个可调用函数,该函数将修剪要复制的文件和目录
不过,有一件事需要注意:如果修改传递到ignore
callable的内容列表,也会影响复制的内容(如中所示)
(从评论中复制/解释)
由于
shutil.copytree()
的实现显示了copytree()
如何处理符号链接(linkto=os.readlink(srcname);os.symlink(linkto,dstname)
),即使copytree()也可以作为如何“复制”符号链接的参考
本身没有什么用处。我已经为我的问题添加了更多细节。我认为shutil.copytree()
不适合我目前设计的解决方案。也许不行,但是copytree()
我链接的实现向您展示了copytree()的工作方式
在simlinks
为真时处理符号链接。为什么不将其用作参考?您可以使用自己的复制方法来包装shutil.copy()
或shutil.copy2()
,该方法添加shutil.copytree()
中的那些额外行,并使用它们。看起来shutil.copytree()使用的是linkto=os.readlink>(srcname)
后跟os.symlink(linkto,dstname)
。这基本上就是我在“变通”时所做的!我想这意味着这是一种方法。既然注释中包含答案,我应该将其标记为答案吗?还是单独添加答案更好?编辑我的答案以包括(大部分内容)copytree()
中的相关代码行。