我在python中有以下代码:
import re;
import nltk;
from nltk.util import ngrams;
file="C:/Python26/test.txt";
f=open("Suffix.txt",'w');
with open(file,'r') as rf:
lines = rf.readlines();
c=0;
for word in lines:
if word.endswith(beta):
f.write(word.strip("\n")+"\t"'1'"\n");
c=c+1;
else:
f.write(word.strip("\n")+"\t"'0'"\n");
c=c+1;
print c;
f.close()
此代码未提供标记" 1"对于那些以" beta"开头的单词,当我将endswith()
替换为statrswith()
时,此代码效果很好,endswith()
将带有标记" 1"谁开始使用" beta"但不适用于{{1}}。
我不太了解这种行为。为什么会这样?
我的文件看起来像这样
IL-2
基因
表达
和
NF-卡帕
乙
激活
通过
CD28
需要
反应
氧
生产
通过
5脂氧合酶
答案 0 :(得分:0)
这是因为word
以'\n'
结尾。您应该确保在检查之前剥离该部分,或者检查它是否以'beta\n'
结束。
答案 1 :(得分:0)
尝试
if word.strip().endswith(beta):