Python-删除除

2024-05-17 06:34:35 发布

您现在位置: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)

Tags: 文件csvpathinimport目录脚本for
2条回答

另一种方法是获取文件列表(glob.glob返回一个列表),然后删除要保留的项。

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):
   # get list of files that match
   cleanupFiles = glob.glob("c:\python\AIO*.*")
   cleanupFiles.remove(file_path)
   for cleanupFile in cleanupFiles:
      os.remove(cleanupFile)

试试这个吧

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*.*上循环,这是一个文件,因此它只执行一个循环并终止循环,从而跳过目录中的所有其他文件

相关问题 更多 >