【问题标题】:Did I delete some important files using "os" and "shutil"?我是否使用“os”和“shutil”删除了一些重要文件?
【发布时间】:2020-11-08 12:57:44
【问题描述】:

我使用了一个函数来删除我在 Stack Overflow for python 中找到的文件

varpath = 'C:/Users/emili/Desktop/Nueva carpeta (7)/jeje'

print('Desea vaciar carpeta'+nameimg+'?\n')
print('Escriba Si o No\n')
if( input() == 'si'):
  print('Vaciando carpeta\n')
  for root, dirs, files in os.walk(varpath):
    for f in files:
        os.unlink(os.path.join(root, f))
    for d in dirs:
        shutil.rmtree(os.path.join(root, d))

当我执行代码时,没有任何文件被删除,所以我使用 Ctrl+C 停止了执行,IT 出现了您在 cmd 中看到的内容(见下图)...

我不确定我是否删除了一些重要文件或这意味着什么,所以我希望有人能解释该代码做了什么,因为它没有删除“varpath”中的任何内容。

顺便看了一下回收站,里面什么也没有

【问题讨论】:

  • 用 Python 命令删除的文件不会进入回收站。它们被直接删除。
  • @KlausD。是的,我不知道,但我在 Google 上搜索过……我只是写了它,以防有人建议查看回收站,谢谢!
  • 您可以轻松恢复已删除的文件,直到这些特定地址被覆盖。我通常为此使用Recuva,但还有很多其他可用的取消删除软件。
  • @pavel 建议一种特定的商业产品,尤其是当有许多外部具有相同目的的产品时,可能会被视为 Stack Overflow 上的垃圾邮件。小心点!
  • @KlausD.,我确实特别提到了有很多可用的工具,我什至没有链接到程序网站,而是链接到一个维基百科页面,Emili 可以从该页面访问链接并获得一个查看其他取消删除软件的列表。

标签: python windows operating-system


【解决方案1】:

使用 Python 删除的文件将被永久删除。在运行这些命令之前仔细检查。

会删除任何文件,只要文件存在

os.unlink(f)

将删除任何文件夹及其内容

shutil.rmtree(d)

【讨论】:

  • 是的,问题是该函数没有删除“varpath”中的任何文件,所以在处理一段时间后我停止了代码并显示了我在 cmd 中发布的内容,但我不确定它是否从其他地方删除了某些内容,以及是否确实删除了某些内容,为什么...
  • 那么在这种情况下,您可能需要寻找软件来检测最近删除的文件。这不再是一个编程问题。据我所知,使用 Python 没有简单的方法可以做到这一点。
猜你喜欢
  • 1970-01-01
  • 2021-05-03
  • 2021-07-24
  • 1970-01-01
  • 2021-05-04
  • 2011-07-30
  • 2012-08-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多