比较用户输入的unicode字符与fi中的unicode字符

2024-09-30 01:34:25 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有这个代码,这样我就可以从用户输入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字符串。 我能知道这里怎么了吗??你知道吗


Tags: 文件字符串代码用户instringprefixlen
1条回答
网友
1楼 · 发布于 2024-09-30 01:34:25

问题可能很简单:从文件中读取的行的末尾有换行符。按照Reading a file without newlinesGetting rid of \n when using .readlines()中的建议使用splitlines

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会在split_string内的任何地方寻找line的出现。如果您正在寻找完全匹配的前缀,那么应该使用split_string.find(line) == 0split_string[0:len(line)] == line。你知道吗

相关问题 更多 >

    热门问题