Ich habe eine App in Python, wo ich aus einem einfachen Text lesen.Wie kann ich von bestimmten Zeilen in Python lesen?
Es funktioniert gut. Meine Frage ist, gibt es eine Möglichkeit, aus mehreren Zeilen statt Zeile für Zeile zu lesen. Zum Beispiel hier ist meine einfache Textdatei color.txt:
###
#####
#########
#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
Ich mag color1 und color2 von „Teil1“ so dass ich diese Zeile für Zeile zu lesen, aber wenn ich Position color1 für color2 ändern I‘ bekomme ich einen Fehler, also gibt es eine Möglichkeit, alles innerhalb von "part1" zu lesen? Auf diese Weise kann ich das gleiche Ergebnis erzielen.
Hier ist mein vollständiger Code:
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)
wie Sie erhalte ich den Inhalt von Linien sehen, ich möchte innerhalb eines Teils, alles lesen „1“ ist, habe ich versucht, ohne die Linien aber, wenn dabei Es liest den "Teil 2" oder die erste "Farbe1 und Farbe2", die sie finden.
Hier ist meine Ausgabe:
Alles, was ich will, ist color1 zu lesen oder color2 egal die Linie ist es, wenn ich die Position sollte das Programm liest dies zu ändern, und das gleiche passieren soll in Teil 2.
Sie könnten einen regulären Ausdruck verwenden, um das "Muster" von 'color1' zu finden. –
Wie schlagen Sie vor, das zu tun? –
Ich glaube nicht, dass es besser wäre als das, was Sie getan haben –