簡體   English   中英

python os.rename目錄不為空

[英]python os.rename directory not empty

我正在嘗試執行mv test-dir/* ./但是在python中。 我編寫了以下代碼,但引發OSError: [Errno 66] Directory not empty:

import os    
os.rename(
    os.getcwd() + '/test-dir',
    os.path.abspath(os.path.expanduser('.')))

您要告訴操作系統移動test-dir ,而不是其內容。 它通常會替換目標( .在這種情況下),但這個目標顯然不是空的,所以隱含的rmdir失敗。 即使不為空,也可能無法刪除或替換. 名稱。

外殼*是一個glob ,它將擴展到test-dir每個對象,您可以單獨移動它們; 但是,您希望將它們的名稱傳輸到目標目錄,即test-dir/foobar./foobar os.path.basename可以幫助您提取該部分。

您可能要使用shutil.move()將文件從一個目錄迭代地移動到另一個目錄。
例如,

import os
import shutil

from_dir = os.path.join(os.getcwd(),"test-dir")
to_dir = os.path.abspath(os.path.expanduser('.'))

for file in os.listdir(from_dir):
    shutil.move(os.path.join(from_dir, file), to_dir)

暫無
暫無

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

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