os.remove去哪了?

14

我已经使用Python很长时间了,办公室里有许多脚本正在运行。我特别使用几个脚本来备份和删除数据。在这些脚本中,我使用了os.remove函数。

我的问题是:os.remove函数将项目删除到哪里了?

  • 它会直接将它们从硬盘上删除吗?
  • 我知道它们不会进入回收站
  • 它只是简单地删除项目的链接,但仍然在硬盘上保留它吗?

除了文件系统之外,还有哪些地方? - user2665694
2个回答

24

os.remove会调用操作系统的unlink功能,从磁盘中删除文件。

从技术上讲,操作系统/文件系统可能只是将扇区标记为自由状态并从目录中删除文件条目,但这取决于文件系统的实现方式。


1
+1 这是正确的答案。Python 不会试图执行文件系统的工作,这是有很好的理由的。 - user395760
太棒了,谢谢你的信息!我确实是指os.remove,只是在我的脑海中想到了delete。 - Cody Brown
1
它并没有完全删除并使该扇区空闲。我的磁盘空间用完了,不知道该怎么办! - DragonKnight
@DragonKnight 就像我说的那样 - unlink 的实现取决于操作系统,Python 只是调用操作系统。处理空间不足并不是一个 StackOverflow 的问题,当然也与此无关。 - Douglas Leeder
@DouglasLeeder 你说得对。但是我正在使用Mac,我不得不关闭并重新打开机器。重启没有帮助。 - DragonKnight

4

它只是从硬盘中删除它们


3
类似于系统中的“删除”或“取消链接”命令。通常意味着数据并没有从硬盘驱动器上被完全擦除,而只是不再被引用,也没有“适当”的方法来获取它。如果在太多内容写入磁盘之前采取行动,您可能可以“恢复已删除文件”,但这与在资源管理器中删除文件(当然不使用回收站)完全相同。 - Joachim Sauer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接