如何解决如何遍历目录列表以检查尝试删除后它们是否仍然存在?
我正在运行脚本来卸载程序并完成该过程,我正在检查是否按预期方式删除了适用的目录。我有以下内容:
D_PATHS = (
r'C:\ProgramFiles\D1\FolderA',r'C:\ProgramFiles\D1\FolderB',r'C:\ProgramFiles\D1\FolderC',)
for path in D_PATHS:
self.info('Deleting %s',path)
if os.path.exists:
warnings.warn(f'The following directory still exists: {path}')
else:
print(f'Removed all required directories')
运行脚本时,它始终会发出警告,指出目录仍然存在,即使它们不存在。我究竟做错了什么?请原谅我非常有限的编码知识。我知道可能有一个我不理解的简单答案。
解决方法
os.path.exists
是一个函数,您需要为其提供一个参数:
...
if os.path.exists(path):
print("Still exists")
...
,
如果要为存在的每个目录打印警告,则应设置一个布尔标志,以在最后决定是否打印“已删除所有必需的目录”消息。
dirs_exist = False
for path in D_PATHS:
self.info('Deleting %s',path)
if os.path.exists(path):
warnings.warn(f'The following directory still exists: {path}')
dirs_exist = True
if not dirs_exist:
print(f'Removed all required directories')
如果您只想警告仍然存在的 first 目录,则可以从break
循环进入for
,在这种情况下,您可以使用else
循环中的for
子句,用于在未遇到break
的情况下打印消息:
for path in D_PATHS:
self.info('Deleting %s',path)
if os.path.exists(path):
warnings.warn(f'The following directory still exists: {path}')
break
else:
print(f'Removed all required directories')
请注意,尽管有消息说“正在删除”,但是您在此处显示的代码实际上并未删除任何内容。大概您已经在代码中更早了。
,您可能没有权限,因此无法删除它们。
1。使用pyinstaller生成python.exe。
2。右键单击并单击“以管理员身份运行”选项
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。