Python 基于输入命名数据库

Python 基于输入命名数据库,python,sqlite,Python,Sqlite,我肯定这不是不可能,就是很容易,但我想不出来。我正在尝试根据输入命名数据库。简而言之: import sqlite3 import time import datetime global date d = datetime.datetime.today() month = str(d.month) day = str(d.day) year = str(d.year) date = month+day+year print(type(date)) def name_creation():

我肯定这不是不可能,就是很容易,但我想不出来。我正在尝试根据输入命名数据库。简而言之:

import sqlite3
import time
import datetime

global date
d = datetime.datetime.today()
month = str(d.month)
day = str(d.day)
year = str(d.year)
date = month+day+year

print(type(date))
def name_creation():
    while True:
        global name
        name = input("What is the name? ")
        answer = input("Is the name correct?(y/n)")
        if answer not in ('y', 'n'):
            print ("Invalid input")
            name_creation()
            break
        if answer == 'y':
            break
        if answer == 'n':
            print ("Okay, re-enter name.")
    global name_date
    name_date = name + " " + date
name_creation()
conn = sqlite3.connect (eval(name_date).db)

这其中的大部分并不重要,但我已经尝试了大约两周来解决这个问题。我肯定我的做法是错误的,但我找不到问题所在,所以我可以解决它。

您需要在函数中定义name\u date以将其用作全局函数

import sqlite3
import time
import datetime
name_date=''
.
.
.
.
def name_creation():
.
. 
  global name_date
  name_date="type_your_text_here"
conn = sqlite3.connect (eval(name_date).db)
或者你可以让它返回那个名字,然后用它创建一个conn

然后尝试这样命名数据库:

conn=sqlite3.connect(name_date + ".db")

太谢谢你了,我觉得这很简单。这是我两年来第一次使用Python,所以我忘记了很多。