使用Python、Flask读取CSV文件时出错

使用Python、Flask读取CSV文件时出错,python,csv,parsing,flask,Python,Csv,Parsing,Flask,我对python和flask非常陌生。我只是想读取一个CSV文件,但每次我尝试运行run.py时,它都会给我一个错误:“FileNotFoundError:[Errno 2]没有这样的文件或目录:'Dog Data.CSV'” 这是我的文件单 DD\ static\ (bunch of image files) templates\ (bunch of template files) __init__.py views.py

我对python和flask非常陌生。我只是想读取一个CSV文件,但每次我尝试运行run.py时,它都会给我一个错误:“FileNotFoundError:[Errno 2]没有这样的文件或目录:'Dog Data.CSV'”

这是我的文件单

DD\
    static\
        (bunch of image files)
    templates\
        (bunch of template files)
    __init__.py
    views.py
    Dog-Data.csv
views.py

from flask import render_template
from app import app
import csv

@app.route('/')
@app.route('/Home')
def home():
    return render_template("Home.html",title='Home')

@app.route('/MakeaMatch')
def makeamatch():
    return render_template("MakeaMatch.html",title='Make a Match!')

@app.route('/Game')
def game():
    return render_template("Game.html",title='Game')

@app.route('/ListofDogs')
def listofdogs():
    return render_template("ListofDogs.html",title='List of Dogs')

@app.route('/About')
def about():
    return render_template("About.html", title='About')

@app.route('/Contact')
def contact():
    return render_template("Contact.html", title='Contact')

@app.route('/MatchResult')
def matchresult():
    class DogBreed:
        def __init__(self, br, per, si, lif, hou, cli):
            self.breed = br
            self.personality = per
            self.size = si
            self.lifestyle = lif
            self.housing = hou
            self.climate = cli
            self.match = 0

    #List that will contain class DogBreed
    ListOfBreeds = []

    data_file = open('Dog-Data.csv')
    csv_file = csv.reader(data_file)

    for row in csv_file:
        #print (row) #will print the csv file
        #print (row[2]) #will print element of that row
        dog_breed = DogBreed(row[0],row[1].lower().split(", "),row[2].lower(),row[3].lower(),row[4].lower(),row[5].lower())
        ListOfBreeds.append(dog_breed)

    data_file.close()

    #MORE CODES HERE. OMITTED BECAUSE I DON'T THINK IT'S RELEVANT

    return render_template("MatchResult.html",title='Match Result',posts=ListOfBreeds)
如果我注释掉涉及CSV的行,网页加载和模板显示良好。然而,它当然不会显示结果,我也想要它

我还尝试将Dog-Data.csv放入静态文件夹并使用

data_file = open('static/Dog-Data.csv')
但这也不起作用


非常感谢您的帮助。

您是否尝试给出完整路径而不是相对路径


Python有时将工作目录作为“主”路径,这可能与
视图中的路径相同,也可能不同。

好吧,这是一个非常简单的错误,我花了几个小时才解决。 我应该从根文件夹传递它,这意味着我应该

data_file = open('app/Dog-Data.csv')

现在它开始工作了。谢谢你。我忽略了一件非常简单的事情。此文件路径不反映您发布的应用程序的结构…我在该结构中没有看到
app
文件夹?