删除每n个文件Python

2024-05-14 10:39:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Python脚本从文件夹中删除每10个文件。我环顾四周,发现了这个密码:

import os
l = os.listdir('/Users/myname/Desktop/TBD')

for n in l[::10]:
    os.unlink(n)

我为此创建了一个Python脚本,然后使用

^{pr2}$

我得到的回报是:

FileNotFoundError: [Errno 2] No such file or directory: 'Pic-1.jpg'

我用代码指向的文件夹是包含1000张照片的文件夹。它正在读取第一个文件夹的名称,但不执行删除过程。有更好的方法吗?在


Tags: 文件inimport脚本文件夹密码foros
1条回答
网友
1楼 · 发布于 2024-05-14 10:39:50

这是因为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)

相关问题 更多 >

    热门问题