我在用sqlite3测试一些python脚本。在
这是我写的剧本
#!/usr/bin/env python
from sqlite3 import dbapi2 as sqlite
from sys import argv,exit
db_name = "filenames.db"
def define_db():
try:
conn = sqlite.connect(db_name)
except IOError as e:
print "problem while creating/connecting the db:",e.args[0]
exit(1)
return conn
def write_db(conn,cursor,fni):
conn.execute("CREATE TABLE IF NOT EXISTS file (filenames TEXT UNIQUE)")
query = "INSERT OR REPLACE INTO file VALUES($filenames)"
cursor.execute(query,[fni])
cursor.close()
conn.commit()
conn.close()
print fni,"should now be in the db"
exit(0)
if __name__ == "__main__":
if len(argv) == 2:
etag = argv[1]
else:
print "no argument given - stopping now"
exit(1)
conn = define_db()
cursor = conn.cursor()
write_db(conn,cursor,fni)
我一直遇到这个错误,但没能解决它。在
^{pr2}$知道有什么问题吗。在
现在我使用python2.7.3
脚本的最后一行引用了未定义的名称
fni
。在静态分析工具,如
pyflakes
或pylint
可以用来捕捉这样愚蠢的错误如果您在函数中编写了大量代码(因此它不假定
blub
是一个全局变量,这不会使pyflakes/pylint抱怨):…然后您将得到一对错误,它准确地指出错误是什么(您将参数存储在
^{pr2}$blub
中,但尝试使用fni
访问它):您尚未定义变量“fni”,但您正在使用它。在
相关问题 更多 >
编程相关推荐