我有两个文件。一个( every . that )包含一个长长的物种列表和一些关于每个物种的信息,还有一个(artsliste.txt)包含来自某个位置的物种。我想为artsliste.txt中列出的所有物种提取电子编号to中的信息。打印相应的行为短行。
我觉得我离得很近,感觉这不会太难,但我可能一开始就错了。
我最新的代码是:
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包含如下内容:
[医]假白杨 [医]桔梗 [医]髋臼Aeculus 马氏卷叶蛾 [医]黑山楂 黑麦草 樟树红掌
number.txt.this包含这样的内容:
新星阿卡纳星亚科2527。8.3.6.3.[医] novae-zelandiae 大白菜3 5 5 5 7 7 6 0宏碁夏令营 桔梗4 4 4.5.7.7 0 0μg 假白杨5 4 4 6 5.白杨6 7 6 0 0
我希望我的输出看起来像:
假白杨5 4 4 6 5.白杨6 7 6 0 0 Oenanthe crocata 13637.8.6.7.1只奥伊南鳄鱼 三叶草培养基2087 7 7 4 6 6 3 0
我觉得大多数函数都可以打印找到的行,不管怎样,我想我必须在我已经拥有的搜索函数中设置另一个搜索函数,这是没有任何意义的。希望有人能把我带向正确的方向。诚挚的问候。
发布于 2014-07-15 20:20:58
来自读出线文档:
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_linehttps://stackoverflow.com/questions/24766918
复制相似问题