[英]Delete every n-th file Python
我正在尋找使用Python腳本從文件夾中刪除第10個文件。 我環顧四周,發現以下代碼:
import os
l = os.listdir('/Users/myname/Desktop/TBD')
for n in l[::10]:
os.unlink(n)
我為此創建了一個Python腳本,然后在終端中使用
python filename.py
這就是我得到的回報:
FileNotFoundError: [Errno 2] No such file or directory: 'Pic-1.jpg'
我用代碼指向的文件夾是包含1000張照片的文件夾。 它正在讀取第一個文件夾的名稱,但並未執行刪除過程。 有更好的方法嗎?
這是因為listdir()
僅返回指定文件夾中條目的名稱,而不包含path元素。 因此,當您嘗試取消鏈接這些文件時,請嘗試在當前工作目錄的上下文中執行此操作,而不是在/Users/myname/Desktop/TBD/
中執行此操作。 只需為要取消鏈接的每個文件名添加路徑,或確保/Users/myname/Desktop/TBD
是您的工作目錄。
另外,為了安全起見,您應該檢查要取消鏈接的元素是否實際上是文件,而不是目錄或其他任何文件:
import os
dir_to_clean = '/Users/myname/Desktop/TBD'
l = os.listdir(dir_to_clean)
for n in l[::10]:
target = dir_to_clean + '/' + n
if os.path.isfile(target):
os.unlink(target)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.