#python #django #csv #file
Вопрос:
Я использую скрипты python для сохранения веб-данных в CSV-файлах. Имя CSV-файлов является динамическим, например, fl_todays_date.csv, где сегодняшняя дата является датой, полученной с веб-сайта, очищенного. После сохранения данных в CSV-файле я затем импортирую данные CSV в свои модели Django, используя весь сценарий. Но проблема, с которой я сталкиваюсь, заключается в том, как я могу проверить, присутствуют ли данные из вчерашнего файла уже в базе данных, прежде чем импортировать сегодняшние данные.
Моя файловая структура выглядит следующим образом:
csv_files
fl_some_pervious.csv
fl_yesterday.csv
fl_today.csv
script
scrape.py
db_upload.py
Я попробовал что-то вроде этого:
def run():
file = open('./src/csv_files/floor_sheet_data.csv')
read_file = csv.reader(file)
count = 1
for record in read_file:
if count==1:
pass
else:
try:
obj = MyModel.objects.get(org_symbol=record[4], contract_no=record[5])
except ObjectDoesNotExist:
org = AnotherModel.objects.get(symbol=record[4])
MyModel.objects.create(org=org, s_n=record[1],contract_no=record[2],date=record[3],buyer_broker=record[5],seller_broker=record[6],quantity=record[7],rate=record[8],amount=record[9])
count = 1
Я передаю файлы здесь вручную. Как я могу сделать это автоматически?
Комментарии:
1. os.listdir() можно использовать для перечисления всех файлов в указанном каталоге. Затем вы можете отфильтровать их по расширению
2. @loonatick Я могу перечислить файлы, но я хочу получить доступ к именам файлов и проверить, присутствуют ли даты в имени файла в базе данных или нет.
3. Итак, что-то вроде регулярных выражений ?