如何显示列表?
我正在构建一个有效的简单函数(删除文件)。但最后我想返回已有效删除的文件列表。
这是函数:
def deleteFiles(files):
# empty list
RemovedFiles = list()
for file in files:
# Delete the file
if os.remove(file):
RemovedFiles.append(file)
return RemovedFiles
我运行此函数:
print deleteFiles([/home/xyz/xyz.zip])
这有效地删除了 xyz.zip 但返回一个空列表:[]
。我在这里做错了什么?
I'm building a simple function that works (delete the files). But In the end I want to return the list of the files that were effectively deleted.
This is the function:
def deleteFiles(files):
# empty list
RemovedFiles = list()
for file in files:
# Delete the file
if os.remove(file):
RemovedFiles.append(file)
return RemovedFiles
I run this function with:
print deleteFiles([/home/xyz/xyz.zip])
This effectively deletes the xyz.zip but returns an empty list: []
. What am I doing wrong here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
问题是 os.remove 不返回任何内容。
不过,您可以
尝试
和例外
:The problem is that
os.remove
does not return anything.You can however
try
andexcept
:os.remove() 返回 None,因此您永远无法追加到列表中。
os.remove() returns None, so you never get to append to the list.
os.remove()
< /a> 不返回值,因此您的if
语句变得有效。另一方面,如果无法删除文件,它会抛出异常,因此以下内容应该有效:
os.remove()
doesn't return a value, so yourif
statement becomes effectivelyOn the other hand, it does throw an exception if it can't remove the file, so the following should work:
那是因为 os.remove() 不返回任何内容。您的 if 条件评估结果为 false。
试试这个:
这应该有效
That is because os.remove() does not return anything. Your if condition evaluates to false.
Try this:
This should work