Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在开始标记和结束标记之间读取文本文件的内容_Python_Python 3.x - Fatal编程技术网

Python 在开始标记和结束标记之间读取文本文件的内容

Python 在开始标记和结束标记之间读取文本文件的内容,python,python-3.x,Python,Python 3.x,我目前有一个程序,可以读取文本文件并根据一组条件输出结果。在文件本身中,有许多不相关的信息需要忽略 我使用切片来设置我希望程序查看的位置的准则。但是,这会阻止代码与具有不同格式的其他文本相关 我在每个文件中都放置了类似于*START*和*FINISH*的提示,以说明我希望程序从何处开始并结束搜索 这就是我现在的处境 for line in open('filename.txt'): if line.startswith('* START'): #do stuff

我目前有一个程序,可以读取文本文件并根据一组条件输出结果。在文件本身中,有许多不相关的信息需要忽略

我使用切片来设置我希望程序查看的位置的准则。但是,这会阻止代码与具有不同格式的其他文本相关

我在每个文件中都放置了类似于*START*和*FINISH*的提示,以说明我希望程序从何处开始并结束搜索

这就是我现在的处境

for line in open('filename.txt'):
    if line.startswith('* START'):
        #do stuff

    if line.endswith('* FINISH'):
        #do stuff
请原谅我的无知,但我不确定如何达到与使用此方法切片相同的结果

slicing = list[5:-5]

如果有任何指点,我将不胜感激——干杯

您可以逐行读取文件,直到到达开始标记,然后执行某些操作,直到到达结束标记。例如:

with open('filename.txt') as f:
    line = f.readline()
    while not line.startswith('* START'):
        line = f.readline()
    while not line.endswith('* FINISH *\n'):
        # add code to do something with the line here
        # e.g. print it, store it to a list, ...
        line = f.readline()
    # do something to the line ending with '* FINISH *\n' here

我理解这一点,但我正在尝试使它忽略所有其他文本,只查看开始和结束之间的内容。示例程序读取行并忽略它们,直到找到开始标记。然后,它继续读取行,直到找到结束标记并忽略其后的行。如果这不是你想要的,请再解释一下你想要什么。@Androx没问题。也许您应该添加一些print(line)语句,并在一个小样本文件上运行代码,看看它能做什么。如果你还需要其他的东西,告诉我。你把所有的东西都用上了吗?不幸的是没有,我尝试了一些不同的东西,但都没有用。如果您愿意,我可以向您展示我的产品。您可以告诉我在尝试使用我的答案中的代码时遇到的问题。这对我来说很好。或者,您可以将您的尝试编辑到您的问题中,以便其他人可以提供更具体的帮助。