在Python中拆分时循环一行

Bri*_*Top 0 python split

我在文件中有一个大行.我试图从某条特定线路中取出一些数据.

例如,文件的第107行:

<test>H</test><test>E</test><test>L</test><test>L</test><test>O</test>
Run Code Online (Sandbox Code Playgroud)

我怎么能把它分开X次直到行的结尾,所以它返回

H
E
L
L
O
Run Code Online (Sandbox Code Playgroud)

但是没有使用解析器.

我一直在努力将文件分成行,但我只能循环一次,直到它找到要拆分的第一部分.如何让它继续通过线路分裂?

matches = open('file.html', 'r')

for line in matches:
    test = line.split("<test")
    with open ('test.txt', 'a') as file:
        file.write(test[0].split("\">")[-1] + "\n")

matches.close()
Run Code Online (Sandbox Code Playgroud)

Ter*_*ryA 5

考虑使用HTML解析器,例如BeautifulSoup.它将使工作变得更加容易,并且它的设计类似于:

>>> from bs4 import BeautifulSoup as BS
>>> s = "<test>H</test><test>E</test><test>L</test><test>L</test><test>O</test>"
>>> soup = BS(s)
>>> for i in soup.find_all('test'):
...     print i.text
... 
H
E
L
L
O
Run Code Online (Sandbox Code Playgroud)

此外,每次循环文件中的一行时,都会打开file.html文件.您应该with在for循环之外打开语句.这可能会解决您的问题,因为目前您正在重写同一行(因为您在第一行打开文件,写入,然后关闭文件,然后重复).