【问题标题】:Python: read a text file and copy/paste directories listed in it to a new directoryPython:读取文本文件并将其中列出的目录复制/粘贴到新目录
【发布时间】:2016-05-17 19:10:33
【问题描述】:

我正在尝试读取列出目录名称的 .txt 文件并将列出的目录复制/粘贴到新目录中。我非常接近弄清楚它,但需要一个复制目录的函数(不仅仅是它的内容)。

from distutils.dir_util import copy_tree

dst = '/Users/name/Desktop/Core/TEST'
f = open('/Users/name/Desktop/Core/Core_List.txt','r')
for i in f.readlines():  
    print i
    copy_tree(i.strip(), dst)

f.close()

这就是最终的工作:

from shutil import copytree
from os.path import join

dst = '/Users/name/Desktop/Core/TEST'
f = open('/Users/name/Desktop/Core/Core_List.txt','r')
for i in f.readlines():
    print i
    copytree(i.strip(), join(dst,i))

f.close()

【问题讨论】:

  • 很清楚,只是包含无关信息。问题是您需要一个复制目录本身而不仅仅是其内容的函数。其他一切都不相关。
  • 看看shutil模块
  • 我尝试遵循“如何使用 Python 将整个文件目录复制到现有目录中?”但这是我第一次使用 Python,所以我很难将 open() 与 def 结合起来。

标签: python


【解决方案1】:

也许是这样

from shutil import copytree
from os.path import join

dst = '/Users/name/Desktop/Core/TEST'
with open('/Users/name/Desktop/Core/Core_List.txt') as f:
    for src in f:
       print src
       copytree(src, join(dst, src))

假设 src 是相对于工作目录的,如果不是,它会稍微复杂一些。

【讨论】:

    【解决方案2】:

    换行:

    copy_tree(i.strip(),dst)
    

    带线:

    copy_tree(i.strip(),dst + '/' + i.strip())
    

    【讨论】:

      【解决方案3】:

      我认为这应该可行:

      from distutils.dir_util import copy_tree
      
      os.chdir('/Users/name/Desktop/Core/')
      f = open('./Core_List.txt','r')
      for i in f.readlines():  
          print i
          copy_tree(i.strip(), './TEST/')
      
      f.close()
      

      注意:所有“i”值都必须是文件名,而不是路径。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-24
        • 1970-01-01
        • 1970-01-01
        • 2019-11-18
        • 1970-01-01
        • 2019-11-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多