У меня есть папка, содержащая много файлов .csv с необработанными данными, для которых у меня есть сценарий, написанный для импорта, обработки и последующего добавления в таблицу базы данных SQL.
Каждый день папка обновлен необработанным csv предыдущего дня. Я пытаюсь написать код для поиска в базе данных SQL последней даты и импортировать только новые необработанные файлы.
Файлы Csv всегда заканчиваются на DDMMYYYY_raw.csv
, поэтому далеко у меня:
#Finding the max date in the SQL server
maxdate = engine.execute("Select MAX([TableDate]) as 'Max Date' From [dbo].[SQLTable]")
for row in maxdate:
latestdate = row[0]
print(latestdate)
#Adding 1 day so it gets the next days data csv
date2get = latestdate + timedelta(days=1)
print(date2get)
#Working out what year, month and day to get for
yrtoget = date2get.year
mthtoget = date2get.month
daytoget = date2get.day
#Todays Date Calclulation
timerightnow = datetime.now()
yearend = timerightnow.year
monthend = timerightnow.month
dayend = timerightnow.day
#Start and end date
start_dt = date(yrtoget, mthtoget, daytoget)
end_dt = date(yearend, monthend, dayend)
#Date Calculation
def daterange(date1, date2):
for n in range(int((date2 - date1).days) + 1):
yield date1 + timedelta(n)
#Create and populate list of files to get
filestoget = []
for dt in daterange(start_dt, end_dt):
filestoget.append(dt.strftime("%d%m%Y") + '_raw.csv')
print(filestoget)
Итак, filestoget дает мне:
print(filestoget):
['06052020_raw.csv', '07052020_raw.csv']
Что правильно.
ВОПРОС: Как мне теперь импортировать все CSV, у которых есть эти окончания?
Это то, что мне сейчас нужно было импортировать все файлы csv (но не для определенных c дат)
csvfiles = glob.glob(os.path.join(file_path, '*.csv'))
for csvfile in csvfiles:
with open(csvfile, 'r') as read_obj:
...#code then starts
...
...
Мне нужно создать еще л oop? и отрегулируйте строку csvfiles = glob.glob(os.path.join(file_path, '*.csv'))
Любая помощь будет принята с благодарностью. Спасибо