如何在不知道文件名的情况下打开CSV文件

时间:2018-09-17 01:54:49

标签: python-3.x forms file csv post

所以我要做的是创建一个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..................................')

0 个答案:

没有答案