我希望使用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张照片的文件夹。它正在读取第一个文件夹的名称,但是没有通过删除过程。有没有更好的方法呢?
答案 0 :(得分:0)
这是因为listdir()
只返回指定文件夹中条目的名称,而没有路径元素。因此,当您尝试取消链接这些文件时,您会尝试在当前工作目录的上下文中执行此操作,而不是在/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)