只是一个基本问题。我知道如何从文件中读取信息等但我怎么会只包括某些行之间的行?
说我有这个:
信息包含在文件中但在“文本开头”之前
“文字开头”
我想要的信息
“文字结尾”
文件中包含的信息,但在“文本结束”之后
感谢您为让我入门而给予的任何帮助。
答案 0 :(得分:1)
您可以逐行阅读该文件,直到您到达开始标记线,然后对这些行执行操作(打印它们,将它们存储在list
中等),直到您到达结束标记线。
with open('myfile.txt') as f:
line = f.readline()
while line != ' Beginning of text \n':
line = f.readline()
while line != ' end of text \n':
# add code to do something with the line here
line = f.readline()
确保完全匹配开始和结束标记线。在您的示例中,它们具有前导和尾随空白。
答案 1 :(得分:1)
另一种方法是使用iter()
的双参数版本:
start = '" Beginning of text "\n'
end = '" end of text "\n'
with open('myfile.txt') as f:
for line in iter(f.readline, start):
pass
for line in iter(f.readline, end):
print line
有关详细信息,请参阅https://docs.python.org/2/library/functions.html#iter
答案 2 :(得分:0)
我只是逐行读取文件并检查每一行是否与开头或结尾字符串匹配。然后,布尔值readData指示您是否在开始和结束之间,并且您可以将实际信息读取到另一个变量。
# Open the file
f = open('myTextFile.txt')
# Read the first line
line = f.readline()
readData=false;
# If the file is not empty keep reading line one at a time
# until the file is empty
while line:
# Check if line matches beginning
if line == "Beginning of text":
readData=true;
# Check if line matches end
if line == "end of text"
readData=false;
# We are between beginning and end
if readData:
(...)
line = f.readline()
f.close()