使用Python解析文本文件?

时间:2009-10-21 22:43:23

标签: python string parsing text-files

我必须做一个任务,我有一个包含这样的东西的.txt文件 p
没有人喜欢痛苦本身,追求痛苦并且想要追求痛苦 拥有它,仅仅因为它是痛苦的......

H1
这是该文本文件的另一个示例

我想编写一个python代码来解析这个文本文件并创建和xhtml文件
我需要找到这个项目的起点,因为我对python很新,不熟悉这些东西 这个python代码假设从这个文本文件中取出每个“标签”并将它们放入xhtml文件中我希望我所问的对你有意义。
非常感谢任何帮助,
提前谢谢!
-bojan

2 个答案:

答案 0 :(得分:9)

你说你对Python很新,所以我会从非常低级开始。您可以在Python

中非常简单地迭代文件中的行
fyle = open("contents.txt")
for lyne in fyle :
    # Do string processing here
fyle.close()

现在如何解析它。如果每个格式化指令(例如p,h1)位于单独的行上,则可以轻松检查。我会建立一个处理程序字典并像这样得到处理程序:

handlers= {"p": # p tag handler
           "h1": # h1 tag handler
          }

# ... in the loop
    if lyne.rstrip() in handlers :  # strip to remove trailing whitespace
        # close current handler?
        # start new handler?
    else :
        # pass string to current handler

您可以先执行Daniel Pryden suggested并创建内存中的数据结构,然后将其序列化为XHTML。在这种情况下,处理程序将知道如何构建与每个标记相对应的对象。但我认为更简单的解决方案,特别是如果你没有很多时间,你只需要直接使用XHTML,保留一堆当前封闭的标签。在这种情况下,您的“处理程序”可能只是将标记写入输出文件/字符串的一些简单逻辑。

如果不知道问题的具体细节,我不能说更多。此外,我不想为你做所有的功课。这应该会给你一个良好的开端。

答案 1 :(得分:1)

我不是直接从您描述的文本文件转到XHTML文件,而是首先将其转换为中间内存表示。

因此,我将构建类来表示ph1标记,然后遍历文本文件并构建这些对象并将它们放入列表(甚至是更复杂的对象,但是从文件的外观来看,列表应该足够了)。然后我将列表传递给另一个循环遍历ph1对象的函数,并将它们输出为XHTML。

作为额外的好处,我会让每个标记对象(比如ParagraphHeading1类)实现as_xhtml()方法,并将实际格式委托给该方法。然后XHTML输出循环可能类似于:

for tag in input_tags:
    xhtml_file.write(tag.as_xhtml())
相关问题