我正在研究web2py中的一个项目,我需要将csv文件上传到数据库,然后获取该文件中的信息并对其执行操作。我能够上传一个csv文件,在数据库中我可以点击这个文件,打开它,然后进行物理读取,但当我尝试在控制器中打开并读取它时,它不起作用。
我的控制器中导致错误的代码如下所示:
csvfile = open(form.vars.csv, 'r')
错误是“FileNotFoundError:[Errno 2]没有这样的文件或目录:'datab.csv.aae72db13bc450af.637376746573742e637376.csv' “
为什么这不起作用?
答案 0 :(得分:0)
表单处理完毕后,数据库中的上传字段以及form.vars.csv
只存储文件名,而不是完整的文件路径。而不是手动构建完整的文件路径并调用open
,更简单地说,你可以这样做:
filename, csvfile = db.mytable.csv.retrieve(form.vars.csv)
传递文件名时,上传字段对象的.retrieve
方法返回原始(未转换的)文件名以及打开的文件对象。
请参阅http://web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#More-on-uploads。