我有一个要删除的文件的完整路径列表,我正在尝试使用os.remove,但是它会引发错误:
for item in zip(file_list):
os.remove(item)
TypeError: remove: illegal type for path parameter
我检查了列表中的输出,如下所示:
for item in zip(file_list):
print(item)
('/home/user/directory/file1.ext')
('/home/user/directory/file2.ext')
('/home/user/directory/file3.ext')
如果我手动尝试删除该文件,它将起作用:
python
import os
os.remove('/home/user/directory/file1.ext')
所以我无法从调试尝试或os docs中弄清楚自己在做什么错。抱歉,这是一个简单的疏忽,我仍在学习基础知识!
答案 0 :(得分:1)
这是因为zip:
返回一个元组的迭代器
因此,在您的情况下,item
是一个元组而不是字符串。
请删除对zip
的呼叫(如果不需要,则为首选解决方案):
for item in file_list:
os.remove(item)
或使用item[0]
访问元组的第一个元素,它应该是您的文件路径:
for item in zip(file_list):
os.remove(item[0])