我是新手,而且我确定过去也曾问过类似的问题,但是我很难找到/理解答案。预先感谢您对我耐心等待!因此,我试图编写一个脚本来读取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会不会有任何改变)?
添加回答
举报
0/150
提交
取消