私はPythonでプレーンテキストから読んでいるアプリを持っています。Pythonの特定の行からどのように読み込むことができますか?
正常です。私の質問は、行ごとにではなく複数の行から読み取る可能性のある方法があるということです。例えば、ここにある私のプレーンテキストファイルcolor.txtです:私は「パート1」からカラー1とカラー2はので、私はラインでこの行を読んでいるが、私はカラー2用カラー1の位置を変更した場合、私は」欲しい
###
#####
#########
#example colors
#line of colors
#line colors PART 1
color1 gray
color2 blue
# line colors PART 2
iface eth1 inet static
color1 yellow
color2 green
エラーが出るので、 "part1"の中のすべてを読む方法はありますか?それで私は同じ結果を得ることができます。ここで
は私の完全なコードがあります:
from flask import Flask,render_template,flash,request,redirect
import os
import sys
app = Flask(__name__)
def color1_p1():
with open('color.txt', 'r+') as f:
for i, line in enumerate(f):
if i == 7:
found_color = line.find('color1')
if found_color != -1:
color = line[found_color+len('color1:'):]
print ('Color: '), color
return color
def color2_p1():
with open('color.txt', 'r+') as f:
for i, line in enumerate(f):
if i == 8:
found_color = line.find('color2')
if found_color != -1:
color = line[found_color+len('color2:'):]
print ('Color: '), color
return color
def color1_p2():
with open('color.txt', 'r+') as f:
for i, line in enumerate(f):
if i == 13:
found_color = line.find('color1')
if found_color != -1:
color = line[found_color+len('color1:'):]
print ('Color: '), color
return color
def color2_p2():
with open('color.txt', 'r+') as f:
for i, line in enumerate(f):
if i == 14:
found_color = line.find('color2')
if found_color != -1:
color = line[found_color+len('color2:'):]
print ('Color: '), color
return color
@app.route('/')
def showLine():
color1 = color1_p1()
color2 = color2_p1()
color3 =color1_p2()
color4 = color2_p2()
return render_template('color.html', color1=color1, color2=color2, color3=color3,color4=color4)
if __name__ == '__main__':
app.run(debug=True)
あなたは私がラインでコンテンツを取得しています見ることができるように、私は一部の内部ですべてを読みたい「1」、私はラインのない試みたが、そうするとき「パート2」または最初に見つかった「カラー1とカラー2」が読み込まれます。
は、ここに私の出力です:
私が欲しいのは関係なく、それがある行をカラー1またはカラー2を読まないし、私は位置を変更する場合、プログラムがこれを読んでください、と同じことが起こるはず
正規表現を使って 'color1'の「パターン」を見つけることができるかもしれません –
どうやってそれをするといいですか? –
私はそれがあなたがしたことよりも良いとは思わない –