读取部分文件,停止并以某些单词开头

NMa*_*zie 8 html python file-io parsing

我正在使用python 2.7,我已经被分配(自我指导,我编写了这些指令)来编写一个小的静态html生成器,我想帮助找到新的面向python的资源来读取部分文件一时间 如果有人提供代码的答案,这是伟大的,但我想知道为什么如何蟒蛇工程.我可以买书,但不是昂贵的 - 我可以负担得起在这个特定的研究中投入三十,四十美元.

该程序应该起作用的方式是有一个template.html文件,一个message.txt文件,一个图像文件,一个archive.html文件和一个output.html文件.这比您需要的信息更多,但我的基本想法是"从模板和消息中来回读取,将其内容放在输出中,然后在存档中写入输出存在".但是我还没有到达那里,我并没有要求你解决这个问题,我详细说明如下:

该程序从template.html读入html ,在开始标记处停止,然后从message.txt读取页面标题的内容.那就是我现在的位置.有用!我很高兴......几小时前,当我意识到那不是最后的老板.

#doctype to title
copyLine = False
for line in template.readlines():
    if not '<title>' in line:
       copyLine = True
       if copyLine:
            outputhtml.write(line)
            copyLine = False
else:
    templateSeek = template.tell()
    break

#read name of message
titleOut = message.readline()
print titleOut, " is the title of the new page"
#--------
##5. Put the title from the message file in the head>title tag of the output file
#--------
titleOut = str(titleOut)
titleTag = "<title>"+titleOut+"|Circuit Salsa</title>"
outputhtml.write(titleTag)
Run Code Online (Sandbox Code Playgroud)

我的问题是这样的:我不理解正则表达式,当我在代码中尝试各种形式的for ...时,我得到了所有模板,没有模板,模板部分的某些组合我没有'我想...无论如何,如何来回阅读这些文件并从我离开的地方继续?任何帮助找到更容易理解的资源非常感谢,我花了大约五个小时研究这个,我很头疼,因为我不断获得针对更高​​级受众的资源,我不理解它们.

这是我尝试的最后两种方法(没有成功):

block = ""
found = False
print "0"
for line in template:
    if found:
        print "1"
        block += line
        if line.strip() == "<h1>": break
else:
    if line.strip() == "</title>":
        print "2"
        found = True
        block = "</title>"

print block + "3"
Run Code Online (Sandbox Code Playgroud)

只打印了第0和第3点.我把print#放在那里因为我无法弄清楚为什么我的输出文件没有改变.

template.seek(templateSeek)
copyLine = False
for line in template.readlines():
    if not '<a>' in line:
        copyLine = True
        if copyLine:
            outputhtml.write(line)
            copyLine = False
    else:
        templateSeek = template.tell()
        break 
Run Code Online (Sandbox Code Playgroud)

对于另一个,我很确定我只是做错了.

NMa*_*zie 0

昨晚深夜,我发现了一个适合我想做的事情的解决方案。虽然学习正则表达式将是一项有用的技能,我肯定会在整个夏天培养它,但正则表达式对于这个特定的应用程序来说有点太多了。我最终使用linecache读取特定行,因为我想要从这些文件中获取的信息是由换行符分隔的。