"unsized object" 尝试从目录中删除文件时出错

"unsized object" error trying to remove files from a directory

我正在尝试从目录中删除扩展名为 .pcp 的文件。 如果我列出我得到的目录:

>>> for i in os.listdir(folder):
...     if i.endswith(".pcp"):
...         print(i)
...
1.pcp
2.pcp
3.pcp
4.pcp
5.pcp
6.pcp
7.pcp
8.pcp
9.pcp
10.pcp

当我 运行:

>>> for i in os.listdir(folder):
...     if i.endswith(".pcp"):
...         os.remove(os.path.join(dir, i))
...

我收到错误:

Traceback (most recent call last):
  File "<stdin>", line 3, in <module>
  File "C:\Program Files (x86)\IronPython 2.7\Lib\ntpath.py", line 96, in join
TypeError: len() of unsized object

请你指出我做错了什么?非常感谢帮助。谢谢

看来你打错电话了

os.remove(os.path.join(dir, i))

您不会收到 NameError,因为 dir 是内置函数。


相反,您可能需要调用以下行:

os.remove(os.path.join(folder, i))

您还可以使用 glob 模块:

import glob
files = glob.glob(os.path.join(folder,'*.pcp'))
for f in files:
    os.remove(f)