使用Python解析文本文件?

1 python string parsing text-files

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

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

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

AFo*_*lia 9

你说你对Python很新,所以我会从非常低级开始.您可以非常简单地在Python中迭代文件中的行

fyle = open("contents.txt")
for lyne in fyle :
    # Do string processing here
fyle.close()
Run Code Online (Sandbox Code Playgroud)

现在如何解析它.如果每个格式化指令(例如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
Run Code Online (Sandbox Code Playgroud)

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

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

  • +1很好的答案.我会强调调用`fyle.close()`,或者更好,使用`with open("contents.txt")作为fyle:`).进入这是一个很好的习惯 - 你可以经常让垃圾收集器处理打开的文件,但你真的不应该这样做. (2认同)