我有两个文件。一个(e-number.txt)包含一个长物种列表和每个物种的一些信息和一个(artsliste.txt)包含来自某个位置的物种。 我想在e-number.txt中提取artsliste.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包含以下内容:
Acer pseudoplatanus
Acer platanoides
Aeculus hippocastaneum
Adoxa moschatellina
黑接骨木
Aegopodium podagraria
Anthriscus sylvestris
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
Oenanthe crocata 1363。 7。 8。 6。 7。 1 Oenanthe crocata
三叶草培养基2087 7 7 4 4 6 6 3 4 0 0三叶草培养基 我觉得大多数都有一个可以打印找到的行的功能,无论哪种方式,我想我必须在我已经拥有的那个内部设置另一个搜索功能,这没有任何意义。 希望有人能让我朝着正确的方向前进。 最好的问候。
1 个答案:
答案 0 :(得分:1)
来自readline文档:
f.readline()从文件中读取一行;换行符 (\ n)留在字符串的末尾
art = arter.readline().strip()
应该有帮助。
根据您的评论更新
试试这个:
for line in arter: art = arter.readline().strip() index = ellenberg.find(art) if index > -1: line_end_index = ellenberg.find('\n', index) print(ellenberg[index:line_end_index])
更多更新: 只有当行以
art
开头时,此代码才会打印完整的相关行,否则它将从art
的入口点打印块到行尾。要打印整行,您可以使用以下代码:
ellenberg=open('e-number.txt').readlines() arter=open('artsliste.txt','r') for line in arter: for ellenberg_line in ellenberg: line = line.strip() if len(line) > 0 and line.strip() in ellenberg_line: print ellenberg_line
相关问题最新问题
- 我写了这段代码,但我无法理解我的错误
- 我无法从一个代码实例的列表中删除 None 值,但我可以在另一个实例中。为什么它适用于一个细分市场而不适用于另一个细分市场?
- 是否有可能使 loadstring 不可能等于打印?卢阿
- java中的random.expovariate()
- Appscript 通过会议在 Google 日历中发送电子邮件和创建活动
- 为什么我的 Onclick 箭头功能在 React 中不起作用?
- 在此代码中是否有使用“this”的替代方法?
- 在 SQL Server 和 PostgreSQL 上查询,我如何从第一个表获得第二个表的可视化
- 每千个数字得到
- 更新了城市边界 KML 文件的来源?