[英]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.