Python-删除除以下文件以外的所有文件


问题内容

我有一个Python脚本,并且尝试删除该目录中.csv文件以外的所有文件。在此行的“ not”上获取语法错误:

for CleanUp not in glob.glob("c:\python\AIO*.*"):

如果删除“ not”,它将删除AIO.csv文件,但是我需要保留该文件,并且仅保留该文件。不清楚为什么它不起作用。

import os
import glob
import time

file_path = "c:\python\AIO.csv"
while not os.path.exists(file_path):
    time.sleep(10)

if os.path.isfile(file_path):
 #Verifies CSV file was created, then deletes unneeded files.
    for CleanUp not in glob.glob("c:\python\AIO*.*"):
        os.remove(CleanUp)

问题答案:

试试这个

import os
import glob
import time

file_path = "c:\python\AIO.csv"
while not os.path.exists(file_path):
time.sleep(10)

if os.path.isfile(file_path):
    #Verifies CSV file was created, then deletes unneeded files.
    for CleanUp in glob.glob('C:/python/*.*'):
        print CleanUp
        if not CleanUp.endswith('AIO.csv'):    
            os.remove(CleanUp)

Glob不会打印任何目录,只显示文件,它还可以获取完整路径,因此您可以调用os.remove(CleanUp)。这应该工作。它可以在我的Windows
7 x64机器上运行。

我认为您的问题是您在哪里循环了c:\python\AIO*.*文件路径,因此它只执行一个循环并终止,从而跳过目录中的所有其他文件