簡體   English   中英

刪除第n個文件Python

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

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