0

我有一个 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 系统

4

2 回答 2

0
with open('list.txt') as f:
    for line in f:
        shutil.move(line, dest)
于 2012-11-23T07:04:36.017 回答
0

签出osos.path。您会发现一些有用的功能,例如:

  • os.path.exists- 检查路径是否存在(如您的目标路径)
  • os.makedirs- 创建一个目录(包括缺少的父目录)
  • os.path.isdir, os.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))
于 2012-11-23T07:11:46.710 回答