【发布时间】:2014-09-06 03:54:50
【问题描述】:
我有两个文件。一个(e-number.txt)包含一个很长的物种列表和每个物种的一些信息,一个(artsliste.txt)包含来自某个位置的物种。 我想为 artliste.txt 中列出的所有物种提取 e-number.txt 中的信息。 打印相应的短线。
我觉得我已经很接近了,而且感觉不会太难,但我可能一开始就错了。
我拥有的最新代码:
ellenberg=open('e-number.txt').read()
arter=open('artsliste.txt','r')
for line in arter:
art = arter.readline()
if art in ellenberg:
print(ellenberg)
artsliste.txt 包含如下内容:
槭树
槭树
海葵
黄花鱼
黑接骨木
荸荠
樟子松
e-number.txt 包含这样的内容:
Acaena novae-zelandiae 2527 . 8. 3. 6. 3. 0 Acae nova Acaena novae-zelandiae
Acer campestre 3 5 5 5 5 7 7 6 6 0 0 Acer camp Acer campestre
Acer platanoides 4 4 4 。 5. 7. 7 0 0 Acer plat Acer platanoides
Acer pseudoplatanus 5 4 4 6 5 。 6 7 6 0 0 Acer pseu Acer pseudoplatanus
我希望我的输出看起来像:
Acer pseudoplatanus 5 4 4 6 5 。 6 7 6 0 0 Acer pseu Acer pseudoplatanus
月见草 1363 。 7. 8. 6. 7. 1 月见草
三叶草培养基 2087 7 7 4 4 6 6 3 4 0 0 三叶草培养基
我觉得大多数功能可以打印找到的行,无论哪种方式,我想我都必须在我已经拥有的功能中设置另一个搜索功能,这没有任何意义。 希望有人能让我朝着正确的方向前进。 最好的问候。
【问题讨论】:
-
您的文件有多大?它们能留在记忆中吗?你能从你的输入文件和所需的输出中显示几行吗?
-
for lineno, line in enumerate(filehandle)? -
哦,是的。对不起。 Enumber 为 100kb。 Artsliste 为 20kb。
-
您应该阅读this question 的答案。另外,您应该澄清这个问题的问题是什么 - 这不是代码编写服务。