为什么word in list 会返回错误呢?

要实现的功能。把在"""大连,青岛,北京,天津,上海,重庆,西安,南京,苏州,杭州,厦门\

       ,成都,深圳,广州,三亚,台北,香港,济南,宁波,沈阳,武汉"""里的这些城市排在前面。

import os,sys
#############函数定义##############

############主程序################
if __name__=='__main__': 
    citys=[]
    city1=[]
    sel="""大连,青岛,北京,天津,上海,重庆,西安,南京,苏州,杭州,厦门\
       ,成都,深圳,广州,三亚,台北,香港,济南,宁波,沈阳,武汉"""
    sel_list=sel.split(',')
    sel_list=map(lambda x:x.strip(),sel_list)
    for word in sel_list :
         print word
     
    path=r'C:\Users\Administrator\Desktop\gdcity.txt'
    with open(path) as fp:
         for line in fp :
              if not line:
                   break
              else:
                   if "code" not in line:
                        continue
                   else:
                        flag=False
                        #print line
                        for word in sel_list :
                             # print word,word in line
                             if word in line:   
                                  print word
                                  city1.append(line)
                                  flag=True
                                  break
                             #print "%s in %s is False"%(word,line)
                        if not flag:
                             citys.append(line)    
    print city1
    with open(path,'w') as fw:
         for line in  city1:
              fw.write(line)
          
         for line  in citys :
              fw.write(line)
              #fw.write(os.linesep)
    print "三亚" in '"code":"0899","city":"三亚",'
          

,但是这前,却怎么都不行。word in line始终返回为False,..
后来发现这是因为gdcity.txt文件的编码不是utf-8,导致的,把文件另存为为utf-8格式的文件,然后再保存就OK了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值