【问题标题】:How to copy contents of a subdirectory in python如何在python中复制子目录的内容
【发布时间】:2017-07-26 16:58:33
【问题描述】:

我是python的新手,我正在努力完成以下任务-

我有一个目录 WP_Test 包含一个子目录 test,我想复制该子目录 test 内的所有文件和文件夹> 到另一个位置。

我有以下代码,但不适合我。请尝试帮助我完成任务的解决方案。任何帮助将不胜感激:)

def copytree(src, dst, symlinks=False, ignore=None):
    for item in os.walk(src).next()[1]:
        s = os.path.join(src, item)
        d = os.path.join(dst, item)
        if os.path.isdir(s):
            print("Found directory!")
            shutil.copytree(s, d, symlinks, ignore)
        else:
            shutil.copy2(s, d)
copytree("/home/user/Desktop/WP_Test", "/home/user/Desktop/something")

【问题讨论】:

  • 如果您在 Windows 机器上,您可能需要 '\' 而不是 '/'。此外,我会通过在文件资源管理器中找到您想要的目录并单击导航栏 (Windows) 或在 unix 机器上运行“pwd”来检查这些目录是否确实存在
  • 实际上在 Windows 上它应该与“/”一起使用
  • 我正在研究 linux
  • 一个好的调试步骤是在if (os.path.isdir(s)) 块中添加一些打印语句,看看它是否真的将它识别为一个目录
  • 你能帮我完成这个任务吗..谢谢

标签: python


【解决方案1】:

通过修改来修复它

for item in os.walk(src).next()[1]:

收件人:

  for item in os.listdir(src):

【讨论】:

    【解决方案2】:

    我已经成功完成任务了,下面是代码-

    dst = '/home/user/Desktop/something'
        src = '/home/user/Desktop/WP_Test'
        def copytree(src, dst, symlinks=False, ignore=None):
            for item in os.listdir(src):
                i = os.path.join(src, item)
                for item in os.listdir(i):
                    s = os.path.join(i, item)
                    d = os.path.join(dst, item)
                    if os.path.isdir(s):
                        shutil.copytree(s, d, symlinks, ignore)
                    else:
                        shutil.copy2(s, d)
        if not os.path.exists(dst):
            os.makedirs(dst)
        copytree(src, dst)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-25
      • 1970-01-01
      • 2011-12-07
      • 2016-05-27
      • 1970-01-01
      • 2011-02-15
      • 2011-03-21
      • 2012-07-24
      相关资源
      最近更新 更多