Python 如何遍历列表,从列表中提取信息,并将其放在文件中的单独行中
我的问题是,我需要第二、第三、第四等人的数据成为新的列表a,并写在第一、第二等人下面的行上。因此,信息都是格式化的,并放在文件的新行上 XML文件的结构:Python 如何遍历列表,从列表中提取信息,并将其放在文件中的单独行中,python,list,file,python-3.x,loops,Python,List,File,Python 3.x,Loops,我的问题是,我需要第二、第三、第四等人的数据成为新的列表a,并写在第一、第二等人下面的行上。因此,信息都是格式化的,并放在文件的新行上 XML文件的结构: <people> <person> <fname> Travis </fname> <lname> Anderson </lname> <age> 24 </age> <school> Nebraska </school>
<people>
<person>
<fname> Travis </fname>
<lname> Anderson </lname>
<age> 24 </age>
<school> Nebraska </school>
</person>
<person>
<fname> James </fname>
<lname> Kritten </lname>
<age> 23 </age>
<school> Texas State </school>
</person>
<person>
<fname> Kaine </fname>
<lname> Allen </lname>
<age> 27 </age>
<school> Michigan State </school>
</person>
</people>
当我执行函数时,我会得到第一人称的信息,这正是我想要的
"Travis Anderson. He is 24 years old. He went to Nebraska."
但对于其他人,我不知道如何让他们以第一人称的方式书写。像这样
"Travis Anderson. He is 24 years old. He went to Nebraska."
"James Kritten. He is 23 years old. He went to Texas State."
"Kaine Allen. He is 27 years old. He went to Michigan State."
我需要一些循环,但我不知道从哪里开始
信息重复(如果有帮助的话,每隔5个索引就有不同的变量。)
为了展示这个库有多简单,我用两行代码提取了列表中的所有文本:
from bs4 import BeautifulSoup
soup = BeautifulSoup(xml, 'lxml')
[i for i in soup.stripped_strings]
输出:
我需要帮助,所以我要问问题。我已经干了11个小时了。@that一个家伙休息一下我不想,我想弄明白。我想学习如何编码,而对我来说,最好的方法就是大量编码。不过,我喜欢使用你的编码双关语。大量编码当然是提高编码水平的一种方法,但它只适用于实际进行编码的人,即回答你问题的人。您可以尝试查找有关调试代码的策略的指南或博客。谢谢,我必须尝试一下。有没有什么方法可以手动完成,还是会太复杂?手动解析xml文件太复杂了,有很多好的库可以为您完成这项工作。这段代码非常简单,你可以在半小时内阅读文档并编写一些代码。我的意思是在没有库的情况下通过循环手动完成输出。我只是想知道这是否有可能,这样我可以在玩了漂亮的汤库之后做些什么。我更新代码来提取列表中的数据,你可以做任何你想做的事情
"Travis Anderson. He is 24 years old. He went to Nebraska."
"James Kritten. He is 23 years old. He went to Texas State."
"Kaine Allen. He is 27 years old. He went to Michigan State."
xml = '''
<people>
<person>
<fname> Travis </fname>
<lname> Anderson </lname>
<age> 24 </age>
<school> Nebraska </school>
</person>
<person>
<fname> James </fname>
<lname> Kritten </lname>
<age> 23 </age>
<school> Texas State </school>
</person>
<person>
<fname> Kaine </fname>
<lname> Allen </lname>
<age> 27 </age>
<school> Michigan State </school>
</person>
</people>'''
from bs4 import BeautifulSoup
soup = BeautifulSoup(xml, 'lxml')
for p in soup.find_all('person'):
fullname = p.fname.text.strip() + p.lname.text.rstrip()
age = p.age.text.strip()
school = p.school.text.strip()
print("{}. He is {} years old. He went to {}.".format(fullname, age, school))
Travis Anderson. He is 24 years old. He went to Nebraska.
James Kritten. He is 23 years old. He went to Texas State.
Kaine Allen. He is 27 years old. He went to Michigan State.
from bs4 import BeautifulSoup
soup = BeautifulSoup(xml, 'lxml')
[i for i in soup.stripped_strings]
['Travis', 'Anderson', '24', 'Nebraska', 'James', 'Kritten', '23', 'Texas State', 'Kaine', 'Allen', '27', 'Michigan State']