簡體   English   中英

Shutil.move 不移動文件夾,而是移動文件夾的內容

[英]Shutil.move doesn't move folder, but contents of folder

我正在編寫一個腳本來重新組織一個大型數據集,以便它與我們目前正在實施的數據庫系統大部分兼容。 我們的大多數數據目前沒有以任何有意義的方式組織,盡管一些文件夾已經按照腳本的方式進行了標記。 因此,我已經實施了一個案例來解決這個問題。

我們稱這種情況為“信息”。 除了第一個實例之外,我的腳本工作正常,在頂層找到“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”文件夾似乎已被刪除。

我的打印消息也永遠不會觸發。

所以,問題是 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”目錄是否存在,如果不創建它,但只有在我嘗試移動“INFO_example”樣式文件夾時才會給出預期的行為,至少對我自己而言。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM