Shutil.move不会移动文件夹,但是文件夹的内容

问题描述 投票:0回答:1

我正在编写脚本来重组大数据集,以便它与我们当前正在实现的数据库系统大部分兼容。目前,我们的大多数数据都没有以任何有意义的方式进行组织,尽管某些文件夹已经按照脚本的方式进行了标记。因此,我已经实施了一个案例来解决这个问题。

我们将此案例称为“ INFO”。在除了第一个实例的所有实例中,我的脚本都能正常工作,在顶层找到“ INFO_example [2,3,4 ....]”文件夹,并将其移至包含所有这些内容的新“ INFO”文件夹例子。但是,由于某种原因,在第一个实例“ INFO_example1”中,它会获取文件夹的内容,然后将其转储到“ INFO”中。

我已经尝试调试问题,但是看不到第一个实例与任何其他实例之间的任何区别。文件夹路径也没有任何不同。

file_path = join(self.path, file)
try:
    move(file_path, self.info_path)
except shutil.Error:
    print("Trying to move", file_path, " didn't work")

我对实际发生的事情有些困惑。

我希望“ INFO_example1”文件夹的行为与其他所有文件夹一样,而只是被移到顶层的“ INFO”文件夹中。

当前,其内容已移至“ INFO”,并且“ INFO_example1”文件夹似乎已删除。

我的打印消息也永远不会触发。

python python-3.6 shutil
1个回答
0
投票

[因此,问题在于shutil.move将查看“ INFO_example1”,然后尝试将其移至“ INFO”,请注意“ INFO”不存在,因此将其创建并放入“ INFO_example1”的内容而不是在其中创建另一个文件夹,然后将内容移动到其中。

由于脚本在尝试移动文件之前创建“ INFO”的性质导致了更多问题,但是,如果我更新了移动“ INFO_example”文件夹的部分,使其看起来像:

    file_path = join(self.path, file)
        try:
            if not isdir(self.info_path):
                mkdir(self.info_path)
            move(file_path, self.info_path)
        except shutil.Error:
            print("Trying to move", file_path, " didn't work")

[仅当我尝试移动“ INFO_example”样式文件夹时,检查“ INFO”目录是否存在,如果不创建目录,则至少对于我自己而言,这将提供预期的行为。

© www.soinside.com 2019 - 2024. All rights reserved.