在python中查找以希腊字母开头或结尾的字符串

时间:2015-01-07 08:56:55

标签: python

我想找到一个以希腊字母开头或结尾的字符串。我为它编写了一个python脚本,但没有给出所需的结果。

greekletters = ["alpha", "beta", "gamma", "delta", "epsilon", "zata", "eta", "theta", "iota","kappa", "lambda", "mu", "nu", "xi", "omikron", "pi", "rho", "sigma", "tau", "upsilon", "phi","chi", "psi", "omega"]
gl=["-alpha", "-beta", "-gamma", "-delta", "-epsilon", "-zata", "-eta", "-theta", "-iota" "- kappa", "-lambda", "-mu", "-nu", "-xi", "-omikron", "-pi", "-rho", "-sigma", "-tau","-upsilon", "-phi", "-chi", "-psi", "-omega"]
file="C:/Python26/test.txt"
f=open("greekletters.txt",'w')
with open(file,'r') as rf:
    lines = rf.readlines();
    c=0
    for word in lines:
        if word.strip() in greekletters or word.startswith(tuple(greekletters)) or word.endswith(tuple(gl)):
##            f.write('1'"\n")
            f.write(word.strip("\n")+"\t"'1'"\n")
            c=c+1
        else:
##            f.write('0'"\n")
            f.write(word.strip("\n")+"\t"'0'"\n")
            c=c+1
    print c
    f.close()

1 个答案:

答案 0 :(得分:0)

读取文件后,您需要使用'\n'修剪新行字符(rstrip),此外,如果要忽略开始和结束空格,可以直接使用{{ 1}}:

strip

应该有效。如果您没有提前从行尾删除换行符for line in lines: line = line.strip() tgreek = tuple(greekletters) if line in greekletters or line.startswith(tgreek) or line.endswith(tgreek): do something ,则句子永远不会'\n'希腊字母。如果句子在开头或结尾有空格,也会发生同样的情况。

如果您不想忽略空格,请替换endswith

此外,如果您使用line = line.rstrip('\n')打开文件,则不需要withclose语句末尾python会自动为您执行此操作。