删除以相同名称开头的旧文件

2024-09-29 22:47:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在CSV文件中存储查询内容。在存储之前,我想删除所有从较旧日期开始的以相同名称(例如“DF\u Tripheader”)开头的查询。我用这个作为灵感:“Deleting files which start with a name Python”,但它不起作用。我没有得到一个错误,但旧的文件也不会被删除。有人能帮帮我吗?你知道吗

Queries = {"DF_TripHeader":DF_TripHeader,"DF_AM":DF_AM}
SQL_Folder = 'SQL_RawData/'

def get_data_from_sql():
    if not os.path.exists(SQL_Folder):
        os.makedirs(SQL_Folder)

   for Query_Name, Query in Queries.items():
     if not os.path.exists(SQL_Folder + '{}_'.format(Query_Name) + str(date.today()) +'.csv'):

        for filename in glob.glob('"' + SQL_Folder + Query_Name + '*"'): #here is the problem
            os.remove(filename)

        Query_CSV = pd.read_sql_query(Query,Conn_SQL)
        Query_CSV.to_csv(SQL_Folder + '{}_'.format(Query_Name) + str(date.today()) +'.csv')
        print('{} downloaded successful'.format(Query_Name))
    else:
        print('Already downloaded {}'.format(Query_Name))

get_data_from_sql()

编辑:Kishor Pawar成功解决了问题,非常感谢!!你知道吗

Queries = {"SQL_TripHeader":SQL_TripHeader,"SQL_AM":SQL_AM}
SQL_Folder = 'SQL_RawData/'
Date = str(date.today())


def get_data_from_sql():
if not os.path.exists(SQL_Folder):
    os.makedirs(SQL_Folder)

for Query_Name, Query in Queries.items():
    if not os.path.exists(SQL_Folder + '{}_'.format(Query_Name) + Date +'.csv'):
        for filename in glob.glob("{0}{1}*".format(SQL_Folder, Query_Name)):
            try:
                os.remove(filename)
            except:
                print('x')
        Query_CSV = pd.read_sql_query(Query,Conn_SQL)
        Query_CSV.to_csv(SQL_Folder + '{}_'.format(Query_Name) + Date +'.csv')
        print('{} downloaded successful'.format(Query_Name))
    else:
        print('Already downloaded {}'.format(Query_Name))
get_data_from_sql()

Tags: csvnameformatdfsqlgetosfolder
1条回答
网友
1楼 · 发布于 2024-09-29 22:47:40

好的。从你的评论,我发现以下。你知道吗

您的错误是"SQL_RawData/DF_TripHeader*",实际上应该是"SQL_RawData/DF_TripHeader/*" #notice the slash before *。你知道吗

glob.glob返回匹配在pathname中传递的路径的列表。我不知道当你通过"SQL_RawData/DF_TripHeader*"时它返回了什么。但是当您传递"SQL_RawData/DF_TripHeader/*"时,它将返回所有文件名。你知道吗

另外,请注意glob.glob将返回filenames的列表。您需要将实际路径传递给os.remove

相关问题 更多 >

    热门问题