Python 如何将文本拆分成句子并将其写入xml
我正在尝试用xml结构构造文本文档,其中每个句子都有一个id。我的文本文档中有非结构化的句子,我想使用“.”分隔符拆分这些句子并将它们写入xml。这是我的密码:Python 如何将文本拆分成句子并将其写入xml,python,xml,text,Python,Xml,Text,我正在尝试用xml结构构造文本文档,其中每个句子都有一个id。我的文本文档中有非结构化的句子,我想使用“.”分隔符拆分这些句子并将它们写入xml。这是我的密码: import re #Read the file with open ('C:\\Users\\ngwak\\Documents\\test.txt') as f: content = [f] split_content = [] for element in c
import re
#Read the file
with open ('C:\\Users\\ngwak\\Documents\\test.txt') as f:
content = [f]
split_content = []
for element in content:
split_content += re.split("(.)\s+", element)
print(split_content, sep='\n\n')
但我已经得到了这个错误,我无法解释它:
TypeError: expected string or buffer
如何拆分句子并将其写入xml?谢谢。
这是我的txt文件的外观:
从形式上讲,民族意识的萌芽可以追溯到1858年6月13日至6月13日士兵之间签署的《霍查纳斯和平条约》,除了邦德尔斯沃茨(Bondelswarts)(没有参与过前一场战斗)的酋长之外,其他所有酋长都与阿穆哈的两个儿子穆乌塔(Muewuta)签署了该条约,以前是部落部落首领Onag的指挥官。这一观点有充分的书信和口头证据。1890年5月13日,著名的、经常被引用的奥纳格写给博纳加的信中,最令人痛心的一句话就是,他在信中说,6月13日有人来。在2015年2月1日至2015年5月1日期间,还会有一些活动
我希望这些句子在xml中是这样的:
<sentence id=01>In a formal sense, the germ of national consciousness
can be traced back to the Peace Treaty of Hoachanas signed in 13–June-
1858 between soldiers, all the chiefs except those of the Bondelswarts
(who had not been involved in the previous fighting), as well as by
Muewuta, two sons of amuaha, formerly a Commandant of Chief Onag of the
Triku people. </sentence>
从形式上讲,民族意识的萌芽
可以追溯到6月13日至12日签署的《霍查纳斯和平条约》-
1858士兵之间,除了邦德尔斯沃茨家族的首领以外,所有的首领
(未参与上一次战斗的人),以及
Muewuta,阿穆哈的两个儿子,以前是埃及酋长奥纳格的指挥官
特里库人。
您不需要内容=[f]
行
with open ('C:\\Users\\ngwak\\Documents\\test.txt') as file:
split_content = []
for element in file:
split_content += re.split("(.)\s+", element)
print(split_content, sep='\n\n')
文件对象是可编辑的。在for
循环中使用它们将在每一行上迭代
进一步阅读
- 在Python文档中
- 该答案中的示例如下:
- 您不需要
内容=[f]
行
with open ('C:\\Users\\ngwak\\Documents\\test.txt') as file:
split_content = []
for element in file:
split_content += re.split("(.)\s+", element)
print(split_content, sep='\n\n')
文件对象是可编辑的。在for
循环中使用它们将在每一行上迭代
进一步阅读
- 在Python文档中
- 该答案中的示例如下:
content=[f]
你需要content=f.readlines()
@Summer Evans在行split\u content+=re.split(()\s+,元素)上。我明白了,我正试着在上面解析内容。。。无论如何,我更改了它,但它没有打印任何内容来查看它如何分割句子。您的文本文件有任何换行符吗?您得到的错误是哪一行?在内容中只有一个元素,它是一个file对象。我不确定为什么要执行content=[f]
您需要在行拆分上的Summer Evans on line split\u content+=re.split((.)\s+,元素)。我明白了,我正试着在上面解析内容。。。无论如何,我改变了它,但它没有打印任何东西让我看它是如何分割句子的。你的文本文件有新行吗?@Summer Evans谢谢你的更正。我注意到我不需要内容=[f],但当我更改它时,我仍然无法打印以查看拆分的句子。@NampaGwakondo,请更新您的问题,并添加更多关于您当前看到的内容和您希望看到的内容的描述。实际上我什么都没有看到。我已经编辑了我的问题,关于我想在一天结束时吃什么。@Summer Evans谢谢你的更正。我注意到我不需要内容=[f],但当我更改它时,我仍然无法打印以查看拆分的句子。@NampaGwakondo,请更新您的问题,并添加更多关于您当前看到的内容和您希望看到的内容的描述。实际上我什么都没有看到。我已经编辑了我的问题,关于我想在一天结束时得到什么。这正是我拆分句子所需要的。非常感谢。你知道我怎样把每个句子写成xml吗?。我也会试试。@NampaGwakondo,搜索Python XML库。(同样,这应该是公认的答案。)@Sumneevans你能看看我的更新吗。我正试图将结果保存到一个新的文本文件中,但我有一个错误。这正是我拆分句子所需要的。非常感谢。你知道我怎样把每个句子写成xml吗?。我也会试试。@NampaGwakondo,搜索Python XML库。(同样,这应该是公认的答案。)@Sumneevans你能看看我的更新吗。我试图将结果保存到一个新的文本文件,但我有一个错误。