Python - 删除所有文件除外

use*_*489 2 python csv

我有一个Python脚本,我正在尝试删除此目录中除.CEv文件外的所有文件.在此行中的"not"上获取语法错误:

for CleanUp not in glob.glob("c:\python\AIO*.*"):
Run Code Online (Sandbox Code Playgroud)

如果我删除"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)
Run Code Online (Sandbox Code Playgroud)

Sir*_*lot 7

试试这个

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)
Run Code Online (Sandbox Code Playgroud)

Glob不打印任何目录,只打印文件,它也可以获取整个路径,因此您只需调用即可os.remove(CleanUp).这应该工作.它适用于我的机器,也是Windows 7 x64.

我认为你的问题是你在路径上循环c:\python\AIO*.*这是一个文件所以它只做一个循环并终止跳过目录中的所有其他文件