用于编程初学者的Python解析器(需要德语umlaute)

用于编程初学者的Python解析器(需要德语umlaute),python,parsing,pyparsing,Python,Parsing,Pyparsing,我希望有人能就以下方案给我一些反馈: 我想写一个python程序,它以.txt文件作为输入,以.csv甚至excel格式作为输出某种结构化数据。一位退出该项目的朋友尝试了使用ANTLR+Java的方法,但德国的Umlaute“ä,ö,ü”制造了麻烦。现在我(作为一个编程初学者)想写一个能工作的程序。我知道一些Matlab,但仅此而已。我开始了一个关于python编程的coursera模块(适用于所有人的python)来学习基础知识 我现在想问一下,上面提到的“包”pyparsing是否可以处理

我希望有人能就以下方案给我一些反馈:

我想写一个python程序,它以.txt文件作为输入,以.csv甚至excel格式作为输出某种结构化数据。一位退出该项目的朋友尝试了使用ANTLR+Java的方法,但德国的Umlaute“ä,ö,ü”制造了麻烦。现在我(作为一个编程初学者)想写一个能工作的程序。我知道一些Matlab,但仅此而已。我开始了一个关于python编程的coursera模块(适用于所有人的python)来学习基础知识

我现在想问一下,上面提到的“包”pyparsing是否可以处理德语umlaute,或者我是否会在这里遇到麻烦


换句话说:如果您要向noob推荐python解析策略,您会推荐什么?

在您的文档第46页的第7.15节。可打印:所有可打印的非空白字符。这些措施如下:

>>> len(pp.printables)
94
>>> print pp.printables
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-
./:;<=>?@[\]^_`{|}~
>len(pp.printables)
94
>>>打印pp.printables
0123456789abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz!"#$%&'()*+,-
./:;?@[\]^_`{|}~
正如您所看到的,这里没有德语UMLAUT。这是因为该项目使用标准ASCII编码而不是utf-8,utf-8将支持您可能需要的所有字符。这很可能是因为他们使用Python 2而不是Python 3

编辑:我刚在他们的网站上找到以下内容:

注意-Pyparsing 2.x支持Python版本2.6、2.7和3.x。如果您使用的是Python 2.5或更早版本,则必须指定安装版本1.5.7。 请参见新闻页面上的更多信息


理论上,当您安装Python 3模块时,您应该能够使用utf-8。不幸的是,更新的文档没有提到可打印内容,因此我不能确定。

您需要使用unicode,除此之外,显示您正在尝试什么。这个问题没有很好地解释您正在尝试做什么。是的,
pyparsing.alphas8b它
包括umlauts和ß字母。正如该网站的创始人之一所指出的,“
.txt
”输入文件使用的是什么编码?此外,由于Python 2和Python 3对Unicode字符串的处理方式略有不同,说明Python的版本可能很有用您打算使用。有许多情况下pyparsing用于7位ASCII以外的字符集。pyparsing的8位内置字符串应该足以解析德语,但您也可以使用unicode字符串自定义创建自己的字符集。是的,
printables
绝对是面向7位的。但是,pyparsing还提供了还支持8位字符的字符集、
alphas8bit
punc8bit
,以及更大的用户定义字符集。