Python-删除文件+;mysql

Python-删除文件+;mysql,python,mysql,file,Python,Mysql,File,我需要从文件夹中删除所有文件(不是我的)。我的脚本是C:\Python22 我有3个文件:MY_PROGRAM.dll,IM_A_TEXT.txt,STACKOVERFLOW.DAT 我想删除目录中除我的3个文件以外的所有文件 如果一个文件在删除时有OSError,我想将文件名发送到一个mysql表 我认为首先我们必须定义我的3个文件,以便: 我的文件1=“我的程序.dll” 我的文件2=“IM\u A\u TEXT.txt” 我的文件3=“STACKOVERFLOW.DAT” 然后我们必须列出

我需要从文件夹中删除所有文件(不是我的)。我的脚本是C:\Python22

我有3个文件:MY_PROGRAM.dllIM_A_TEXT.txtSTACKOVERFLOW.DAT

我想删除目录中除我的3个文件以外的所有文件

如果一个文件在删除时有OSError,我想将文件名发送到一个mysql表

我认为首先我们必须定义我的3个文件,以便:

我的文件1=“我的程序.dll”

我的文件2=“IM\u A\u TEXT.txt”

我的文件3=“STACKOVERFLOW.DAT”

然后我们必须列出(数组?)不是我的文件:

导入操作系统

files_only=filter(os.path.isfile,os.listdir(os.curdir))

如果文件仅限于_!=我的文件1或仅限文件!=我的文件2或仅限文件!=我的文件3

try:
    os.remove(files_only[*.*])
except OSError:
    import MySQLdb, string
    import time
    mi_nombre = "Maria"
    mode_check_FI = "ARCHIVOS"
    tiempo = time.strftime('%Y-%m-%d %H:%M:%S')
    FILE_1 = files_only[0]
    FILE_2 = files_only[1]
    FILE_3 = files_only[3]
    FILE_4 = files_only[4]
    FILE_5 = files_only[5]
    mysql = MySQLdb.connect(IP, "USER", "PASSSWORD", "DB_NAME")
    cursor = mysql.cursor()
    try:
        cursor.execute ("""INSERT INTO info (jugador, type_check, actual_time, FILE_1, FILE_2, FILE_3, FILE_4, FILE_5) values (%s, %s, %s, %s,%s, %s, %s, %s)""", (mi_nombre, mode_check_FI, tiempo, FILE1, FILE_2, FILE_3, FILE_4, FILE_5))
        mysql.commit()
        mysql.close()
    except MySQL.Error:
        pass
pass
提前谢谢你

编辑:

Python部分通过以下方式解决:

files_only = filter(os.path.isfile, os.listdir( os.curdir ))
    my_files = ['MY_PROGRAM.dll', 'IM_A_TEXT.txt', 'STACKOVERFLOW.DAT'] 
    for file in files_only:
        if file not in my_files:
            code..

根据我的理解,我可以提出以下建议

if files_only != my_file1 or files_only != my_file2 or files_only != my_file3:
上面这条线不是肾盂的。此外,将列表与字符串进行比较不会产生期望的结果。使用
set()

my_files = {"MY_PROGRAM.dll", "IM_A_TEXT.txt", "STACKOVERFLOW.DAT"}
files_only = set(filter(os.path.isfile, os.listdir( os.curdir )))
for file in files_only - my_files:
    your code

my_files={“my_PROGRAM.dll”、“IM_A_TEXT.txt”、“STACKOVERFLOW.DAT”}结果:语法错误:无效语法my_files=['my_PROGRAM.dll'、'IM_A_TEXT.txt'、'STACKOVERFLOW.DAT']结果:全局名称'set'未定义“set”类是在Python2.4中引入的,我正在使用2.2:(我正在使用Python3。对此感到抱歉。