python - python备份脚本使用shutil复制树的路径长度问题
问题描述
当我遇到很长的路径时,我的脚本有问题。它引发了一个错误。有没有办法绕过这个错误?这是我的代码`
import os
import sys
import filecmp
import shutil
source = "C:/Users/Omar/Documents/Welo - copy/"
dest = "C:/Users/Omar/Documents/Welo/"
def back_up(dircmpp):
for name in dircmpp.diff_files:
print("copying {} from {} to {} ".format(name, dircmpp.left, dircmpp.right))
shutil.copyfile(dircmpp.left + "/{}".format(name), dircmpp.right + "/{}".format(name))
for name in dircmpp.left_only:
if os.path.isdir(dircmpp.left+"/{}".format(name)):
print("copying tree" , "{}{} \n".format(dircmpp.right,name))
shutil.copytree("{}/{}".format(dircmpp.left, name), "{}/{}".format(dircmpp.right,name))
else:
shutil.copyfile(dircmpp.left+"/{}".format(name), dircmpp.right+"/{}".format(name))
for name in dircmpp.subdirs.values():
print(name.left, " -- " , name.right)
newdir = filecmp.dircmp(name.left,name.right)
back_up(newdir)
thedir = filecmp.dircmp(source, dest)
back_up(thedir)
我测试了脚本,只要路径短< 250,它就可以工作,但是当它变长时,我得到一个找不到目标的错误
`
Error: [('C:/Users/Omar/Documents/Welo - copy/test1\\test2\\asjkhdkajshdkjahdskjhasdjhakjdshakjshdkjashdkjahsdkjhaskjdhaksjdhkajhdkahsdjhaskjdhkashdk\\sjkahdkjashdkjahdjkahdkjhajkshdkjashdkjahsdkjahdkjhakdjahkdjhaskdhjashkdjasjshd/d0\\d2\\d3\\jsjsjdjdjdjfjfjfjjffjjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjf - Copy.txt', 'C:/Users/Omar/Documents/Welo/test1\\test2\\asjkhdkajshdkjahdskjhasdjhakjdshakjshdkjashdkjahsdkjhaskjdhaksjdhkajhdkahsdjhaskjdhkashdk\\sjkahdkjashdkjahdjkahdkjhajkshdkjashdkjahsdkjahdkjhakdjahkdjhaskdhjashkdjasjshd/d0\\d2\\d3\\jsjsjdjdjdjfjfjfjjffjjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjf - Copy.txt', "[Errno 2] No such file or directory: 'C:/Users/Omar/Documents/Welo - copy/test1\\\\test2\\\\asjkhdkajshdkjahdskjhasdjhakjdshakjshdkjashdkjahsdkjhaskjdhaksjdhkajhdkahsdjhaskjdhkashdk\\\\sjkahdkjashdkjahdjkahdkjhajkshdkjashdkjahsdkjahdkjhakdjahkdjhaskdhjashkdjasjshd/d0\\\\d2\\\\d3\\\\jsjsjdjdjdjfjfjfjjffjjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjf - Copy.txt'"), ('C:/Users/Omar/Documents/Welo - copy/test1\\test2\\asjkhdkajshdkjahdskjhasdjhakjdshakjshdkjashdkjahsdkjhaskjdhaksjdhkajhdkahsdjhaskjdhkashdk\\sjkahdkjashdkjahdjkahdkjhajkshdkjashdkjahsdkjahdkjhakdjahkdjhaskdhjashkdjasjshd/d0\\d2\\jsjsjdjdjdjfjfjfjjffjjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjf - Copy.txt', 'C:/Users/Omar/Documents/Welo/test1\\test2\\asjkhdkajshdkjahdskjhasdjhakjdshakjshdkjashdkjahsdkjhaskjdhaksjdhkajhdkahsdjhaskjdhkashdk\\sjkahdkjashdkjahdjkahdkjhajkshdkjashdkjahsdkjahdkjhakdjahkdjhaskdhjashkdjasjshd/d0\\d2\\jsjsjdjdjdjfjfjfjjffjjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjf - Copy.txt', "[Errno 2] No such file or directory: 'C:/Users/Omar/Documents/Welo - copy/test1\\\\test2\\\\asjkhdkajshdkjahdskjhasdjhakjdshakjshdkjashdkjahsdkjhaskjdhaksjdhkajhdkahsdjhaskjdhkashdk\\\\sjkahdkjashdkjahdjkahdkjhajkshdkjashdkjahsdkjahdkjhakdjahkdjhaskdhjashkdjasjshd/d0\\\\d2\\\\jsjsjdjdjdjfjfjfjjffjjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjf - Copy.txt'")]
`
解决方案
推荐阅读
- javascript - EventListener 不会通过点击 div 触发
- java - 如何在 Eclipse 插件中以编程方式编辑 xml 模式文件
- ios - 是否可以延迟 iOS Safari 上的视频播放?
- shell - 如何为文件夹中的所有pdf添加页眉和页脚
- c++ - 代码为相似的输入给出不同的结果
- git - 如何切换到不同的分支但维护文件夹和提交历史
- python - C#:从另一个进程正在使用的文件中快速读取
- c++ - 给定硬币的所有可能总和
- javascript - 如何禁用 ` 中显示的建议密码列表
` 用于所有浏览器的剃刀组件中的字段 - wordpress - 自版本 4.3.0 文件位置以来,不推荐使用 WP_Widget 的调用构造函数方法