猿问

Windows7中通过命令行输入python2.7 utf-8

我是新手,而且我确定过去也曾问过类似的问题,但是我很难找到/理解答案。预先感谢您对我耐心等待!


因此,我试图编写一个脚本来读取utf-8编码的输入文件中的行,将其部分与用户传递的可选命令行参数进行比较,如果有匹配项,则对该行进行一些处理在将其打印到输出文件之前。我codecs用来打开文件。


我现在正在使用该argparse模块来解析命令行参数。文件中的行可以使用各种语言,因此命令行参数也必须为utf-8。


例如:


文件中的一行可能如下所示:


разъедают             {. r ax z . j je . d ax1 . ju t .}


该脚本应从命令行调用,如下所示:


>python myscript.py mytextfile.txt -grapheme ъ


这是我的代码中应该进行处理的部分。在这种情况下,orth是一些西里尔文字,并且grapheme是西里尔字符。


def process_orth(orth, grapheme):

    grapheme = grapheme.decode(sys.stdin.encoding).encode('utf-8')

    if (grapheme in orth):

        print 'success, your grapheme was: ' + grapheme.encode('utf-8')

        return True

    else:

        print 'failure, your grapheme was: ' + grapheme.encode('utf-8')

        return False

不幸的是,即使字素肯定存在,该函数也会返回false并打印一个问号而不是字素:


failure, your grapheme was: ?


我已经尝试按照process_orth()我阅读的其他一些文章的建议在开头添加以下内容,但它似乎没有用:


grapheme.decode(sys.stdin.encoding).encode('utf-8')


所以我的问题是


如何通过命令行将utf-8字符串传递到python脚本中?另外,在Windows7上是否还有其他古怪的功能(安装cygwin会不会有任何改变)?


慕尼黑的夜晚无繁华
浏览 157回答 2
2回答
随时随地看视频慕课网APP

相关分类

Python
我要回答