我有一个文本文档,它由由令牌分隔的多个文章组成
我想把每一篇文章都列在一张清单上
因此,例如,如果我们有一个txt文件:
<新DOCUMENT>你好世界你好世界<新DOCUMENT>早起鸟 我希望List1是:你好,世界,你好 List2未来:早起鸟
现在我不知道需要创建多少个列表,所以首先我需要计算令牌。
第二,我想把每一篇文章都列在一张清单上。
这是我的节目
#program 1
textFile = open("docs.txt" , "r")
lines = textFile.read()
count = 0
#count how many articles there are
for line in textFile:
if line.strip() == '<NEW DOCUMENT>':
count = count + 1
#place articles in lists
textFile.close()我的计数是0,我不知道如何开始把它们放到列表中。
发布于 2015-03-23 20:00:12
假设这个文本文档不是巨大的,并且假设您想要一个表单['Hello world Hello World', 'Early Bird Early Bird']的列表
with open('myfile.txt', 'r') as myfile:
print([item.strip() for item in myfile.read().split('< NEW DOCUMENT>') if item])如果您希望表单[['Hello', 'world', 'Hello', World'], ['Early', 'Bird', 'Early', 'Bird']]的嵌套列表
with open('myfile.txt', 'r') as myfile:
print([[myitem for myitem in item.strip().split(' ')] for item in myfile.read().split('< NEW DOCUMENT>') if item])发布于 2015-03-23 19:02:09
如果令牌出现在一行中,旁边没有其他标记:
newDoc = "<NEW DOCUMENT>"
listOfDocumetns = [[]]
with open('path/to/text/file') as infile:
for line in infile:
line = line.strip()
if line == newDoc:
listOfDocuments.append([])
continue
listOfDocuments[-1].append(line)如果标记出现在一行上,则旁边有其他文本:
newDoc = "<NEW DOCUMENT>"
listOfDocumetns = [[]]
with open('path/to/text/file') as infile:
for line in infile:
line = line.strip()
if newDoc not in line:
listOfDocuments[-1].append(line)
continue
while line:
left, _, right = line.partition(newDoc)
listOfDocuments[-1].append(left)
listOfDocuments.append([])
line = righthttps://stackoverflow.com/questions/29218137
复制相似问题