Как открыть файл CSV, не зная имени файла - PullRequest
0 голосов
/ 17 сентября 2018

Итак, я создал HTML-форму, с помощью которой я могу отправлять CSV-файлы, которые затем обрабатываются скриптом Python.

Далее я, скорее всего, буду создавать имена файлов каждого CSV-файла.динамически в следующем формате: YYYY-MM-DD HH.MM.SS.csv.

Есть ли способ получить имя файла отправленного файла CSV, чтобы я мог открыть файл способом, изображенным ниже?

with open('????-??-?? ??.??.??.csv', newline='') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        print(row['first_name'], row['last_name'])

Ниже приведена форма формы, и я знаю, что могу передать имя файла вперед, используя get, но должен быть способ сделать это с помощью post ...

<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>
    <body>
        <form action="process-excel.py" method="post" enctype="multipart/form-data">
            <input type="file" name="myFile">
        </form>
    </body>
</html>

process-excel.py

Помните, что приведенный ниже скрипт - это просто старый шаблон, который я сохранил для использования PyMySQL для вставки данных в базу данных.

# -*- coding: utf-8 -*-
import pymysql.cursors
import csv


""" HOW DO I RETRIEVE THE FILENAME OF A FILE THAT IS SUBMITTED
''' FROM <input type="file" name="myFile"> IN THE FORM ABOVE?
"""

with open('names.csv', newline='') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        print(row['first_name'], row['last_name'])


con = pymysql.Connect(host='localhost',
                    user='',
                    password='',
                    db='',
                    charset='utf8mb4',
                    cursorclass=pymysql.cursors.DictCursor)

try:
    with con.cursor() as cursor:
        sql = "INSERT INTO `test` (`title`, `description`, `category`) VALUES (%s, %s, %s)"
        cursor.execute(sql, ('a', 'b', 'c'))
        con.commit()
except Exception:
    raise Exception('INSERT FAILED..................................')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...