我正在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()
好的。从你的评论,我发现以下。你知道吗
您的错误是
"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
相关问题 更多 >
编程相关推荐