2016-12-06 15 views
0

このエラーを検索しましたが、それを処理する方法が見つかりませんでした。Pythonエラー[Errno 36]:ファイル名が長すぎます

[ERRNO 36]長すぎるファイル名::私は、ファイルを開こうとすると、次のエラーを取得しています「の/ var/www /のFlaskApp/FlaskApp /テンプレート/

ここでは私です簡単なコード。私はjsonファイルを開いてFlaskでWebサイトにレンダリングしようとしています:

@app.route("/showjson/") 
def showjson(): 
    SITE_ROOT = os.path.realpath(os.path.dirname(__file__)) 
    data_in = open(os.path.join(SITE_ROOT, "static/data", "btc.json"), "r") 
    data_out = "" 
    for line in data_in: 
     data_out += line.rstrip() 
    data_in.close() 
    return render_template(data_out) 

誰か解決策を知っていますか?事前に多くの感謝。

+0

'それが返すものを印刷しますか? – TemporalWolf

答えて

1

テンプレートファイルのファイル名を検索するときに、render_template関数をJSONファイル全体に渡しています。これは、ファイル名が長すぎるエラーになっている理由です。

send_from_directory関数を使用してJSONファイルを送信できます。最初の関数をインポート:

from flask import send_from_directory 

そして、そのようにそれを使用する:あなたは `os.path.join(SITE_ROOT、 "静的/データ"、 "btc.json")を引き出すことができます

@app.route("/showjson/") 
def showjson(path): 
    SITE_ROOT = os.path.realpath(os.path.dirname(__file__)) 
    return send_from_directory(os.path.join(SITE_ROOT, "static/data"), "btc.json") 
+0

Thx it works!しかし、どのように私はディレクトリファイルから来る巨大な文字列を返すだろうか? – saitam

関連する問題