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