Python用于将所有文件和文件夹移动到目标文件夹

时间:2012-11-23 06:44:14

标签: python file directory

我有一个txt文件,其中每行我都有文件和文件夹的路径,我想分隔到一个地方。

列表在我的list.txt文件中是这样的。 每个条目都从一个新行开始。

 C:\xxx\xxy
 C:\abc\def\ghi.pdf

我的目标文件夹是c:\ users \ mr_a \ dest

我想:

1。将目录xxy及其所有文件和子文件夹移至dest

2。将ghi.pdf文件移至dest

list.txt文件中的其他条目执行相同操作。 这样我的dest目录就像:

dest\xxy
dest\ghi.pdf

我调查了shutil,但我还不确定要使用哪种功能。 它说destination目录不应该已经存在,但在我的情况下并非如此。我对使用哪种方法感到困惑。 还请提一下你提到的方法是否安全(我不想要任何令人讨厌的剪切粘贴,我的文件可能会丢失等等)

我要问的是:用什么方法来完成我需要做的事情?

编辑:我使用Windows,而不是Linux或任何Unix系统

2 个答案:

答案 0 :(得分:0)

with open('list.txt') as f:
    for line in f:
        shutil.move(line, dest)

答案 1 :(得分:0)

结帐osos.path。你会发现一些有用的功能,如:

  • os.path.exists - 检查路径是否存在(如目标路径)
  • os.makedirs - 创建一个目录(包括缺少的父目录)
  • os.path.isdiros.path.isfile - 检查路径是否包含目录或文件。
  • os.path.basename - 从路径中删除文件名
  • os.path.join - 加入路径(或带文件名的路径)

这是一个代码示例,我没有尝试过:

if not os.path.exists(dest):
    os.makedirs(dest)
with open('list.txt', 'r') as f:
    for line in f.readlines():
         filepath = line.strip()
         filename = os.path.basename(filepath)
         shutil.move(filepath, os.path.join(dest, filename))