我想找到一个以希腊字母开头或结尾的字符串。我为它编写了一个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()
答案 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')
打开文件,则不需要with
,close
语句末尾python会自动为您执行此操作。