问题描述
我正在运行脚本来卸载程序并完成该过程,我正在检查是否按预期方式删除了适用的目录。我有以下内容:
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。右键单击并单击“以管理员身份运行”选项