簡體   English   中英

比較用戶輸入的Unicode字符與文件中的Unicode字符

[英]comparing the unicode character from user input to unicode characters in file

所以我有此代碼,以便我可以從用戶輸入unicode字符串

print "Enter a nepali string" 
split_string=raw_input().decode(sys.stdin.encoding or locale.getpreferredencoding(True))

而且我在文件中有一些unicode字符串,如果該unicode字符串與用戶輸入字符串中的子字符串匹配,那么我就必須拆分該字符串。 假設我在文件中有“सुर”,並且如果它與用戶輸入的“सुरक्षा”匹配,那么我只想在輸出中輸入“क्का”

with codecs.open("prefixnepali.txt","rw","utf-8") as prefix:
    for line in prefix:
          line=ud.normalize('NFC',line)
          if line in split_string:
             prefixy=split_string[len(line):len(split_string)]
             print prefixy
          else:
            print line

但是當我運行程序時,我得到了

दि

सुर

रु

當我在終端中輸入“सुरक्षा”時,文件中的unicode字符串是哪些。 我能知道這是怎么回事嗎?

問題可能很簡單:從文件讀取的行的末尾有換行符。 使用splitlines在勸讀取文件而無需換行 ,並使用.readlines當除暴安良的\\ n()

with codecs.open("prefixnepali.txt","rw","utf-8") as prefix:
    for line in prefix.read().splitlines():
          line=ud.normalize('NFC',line)
          if line in split_string:
             prefixy=split_string[len(line):len(split_string)]
             print prefixy
          else:
             print line

而且順便說一句, line in split_string會尋找發生line內的任何地方split_string 如果您要查找完全匹配的前綴,則應該使用split_string.find(line) == 0split_string[0:len(line)] == line

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM