gpt4 book ai didi

Python-删除文件+mysql

转载 作者:行者123 更新时间:2023-11-29 23:27:48 25 4
gpt4 key购买 nike

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

3 个文件是我的:MY_PROGRAM.dllIM_A_TEXT.txtSTACKOVERFLOW.DAT

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

如果一个文件在删除时出现 OSError,我想将该文件的名称发送到 mysql 表。

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

my_file1 =“MY_PROGRAM.dll”

my_file2 =“IM_A_TEXT.txt”

my_file3 =“STACKOVERFLOW.DAT”

然后我们必须创建一个不属于我的文件的列表(一个数组?):

导入操作系统

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

如果 files_only != my_file1 或 files_only != my_file2 或 files_only != my_file3:

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:

上面的行不是Pythonic。此外,将列表与字符串进行比较不会产生所需的结果。使用 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

关于Python-删除文件+mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26820678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com