Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 空列表,而我本应该在其中添加很多文本_Python_String_List - Fatal编程技术网

Python 空列表,而我本应该在其中添加很多文本

Python 空列表,而我本应该在其中添加很多文本,python,string,list,Python,String,List,因此,我正在编写一个代码,将特定的xml文档转换为html文档,以呈现一个故事。我已经设法做到了这一点,但是当我将一个列表连接成一个字符串并将新字符串附加到一个列表中时,列表是空的。我曾试图用有限的理解来解决问题所在,但迄今为止还没有解决。我会给你看我的代码和我认为问题所在的区域 我已经修复了一件我注意到的事情,我需要的varaiable不是我使用的,但是我已经检查了代码,并且找不到任何类似的错误 import codecs import re fileIn = codecs.open("d

因此,我正在编写一个代码,将特定的xml文档转换为html文档,以呈现一个故事。我已经设法做到了这一点,但是当我将一个列表连接成一个字符串并将新字符串附加到一个列表中时,列表是空的。我曾试图用有限的理解来解决问题所在,但迄今为止还没有解决。我会给你看我的代码和我认为问题所在的区域

我已经修复了一件我注意到的事情,我需要的varaiable不是我使用的,但是我已经检查了代码,并且找不到任何类似的错误


import codecs
import re

fileIn = codecs.open("differenceInAbility.xml", "r", "utf-8")
text = fileIn.read()
fileIn.close()

chapterTitle = re.findall(r'<chapter number="(\d)" name="(.+?)">', text)
chapters = re.findall(r'<chapter number="\d" name=".+?">(.+?)</chapter>', text, flags=re.DOTALL)
paragraphs = re.findall(r"<paragraph>(.+?)</paragraph>", text, flags=re.DOTALL)

cleanParagraphs = []
for entry in paragraphs:
    cleanup = re.sub(r"\r\n[ ]+", " ", entry)
    cleanup2 = re.sub(r"[ ]+", " ", cleanup)
    cleanParagraphs.append(cleanup2)
chaptersHTML = []
chapterCounter = 1
for entry in chapters:
    if chapterTitle[0] == r"\d+":
        chapterHTML = "<h1> Chapter " + chapterCounter + " - " + chapterTitle[1] + "</h1>"
        chapterTitle.pop(0)
        chapterTitle.pop(1)
        paragraphsHTML = []
        for paragraph in cleanParagraphs:
            if paragraph in entry:
                p = "<p>" + paragraph + "</p>"
                paragraphsHTML.append(p)
        allParagraphsHTML = "\n".join(paragraphsHTML)
        wholeSection = chapterHTML + allParagraphsHTML
        chaptersHTML.append(wholeSection)
        chapterCounter += 1


print(chaptersHTML)

导入编解码器
进口稀土
fileIn=codecs.open(“differencesibility.xml”、“r”、“utf-8”)
text=fileIn.read()
fileIn.close()
chapterTitle=re.findall(r'',文本)
chapters=re.findall(r'(.+?)',text,flags=re.DOTALL)
段落=re.findall(r“(.+?)”,文本,标志=re.DOTALL)
段落=[]
在段落中输入:
cleanup=re.sub(r“\r\n[]+”,“”,条目)
cleanup2=re.sub(r“[]+”,“”,cleanup)
cleanprages.append(cleanup2)
chaptersHTML=[]
章计数器=1
在章节中输入:
如果chapterTitle[0]==r“\d+”:
chapterHTML=“Chapter”+chapterCounter+“-”+chapterTitle[1]+“”
章节标题.流行音乐(0)
章节标题.流行音乐(1)
段落shtml=[]
对于段落中的段落:
如果在条目中有段落:
p=“”+段落+”

“ 第SHTML.段附加(p) allParagraphsHTML=“\n”。加入(paragraphsHTML) 整段=章节HTML+所有段落HTML 第章附加(完整部分) 章计数器+=1 打印(第章)
我认为相关的部分是:

 paragraphsHTML = []
        for paragraph in cleanParagraphs:
            if paragraph in entry:
                p = "<p>" + paragraph + "</p>"
                paragraphsHTML.append(p)
        allParagraphsHTML = "\n".join(paragraphsHTML)
        wholeSection = chapterHTML + allParagraphsHTML
        chaptersHTML.append(wholeSection)
paragraphsHTML=[]
对于段落中的段落:
如果在条目中有段落:
p=“”+段落+”

“ 第SHTML.段附加(p) allParagraphsHTML=“\n”。加入(paragraphsHTML) 整段=章节HTML+所有段落HTML 第章附加(完整部分)
因为
cleanparges
列表具有正确的内容,其中xml文档的每个段落都是该列表中自己的条目

如果条目中的段落没有将“条目”的部分注册为其中的段落,那么问题可能是


如果是这样,我将如何着手解决这个问题?如何确保它知道哪个段落在哪个章节中?

清洁段落的内容不是原始子字符串,因此它们当然不会出现在未更改的
章节
值中。你应该分别处理每一章(包括将其分成段落),这样你就不必重新发现它包含哪些段落(并避免错误处理两章之间恰好相同的段落)。清洁段落的内容不是原始的子字符串,因此,它们当然不会出现在未更改的
章节
值中。您应该分别处理每一章(包括将其拆分为段落),这样您就不必重新发现其中包含的段落(并避免错误处理两章之间恰好相同的段落)。

提供一个或进行一些基本调试。如果没有调试器,请在附加处打印。你还没有证明有任何东西符合实际附加的条件。肯尼:最小的、完整的和可变的是我试图做的。我对编码还是相当陌生的,代码的第二部分是我能得到的最简单的部分。我怀疑它没有附加的原因是,正如我在帖子中所说的,if语句
if pragaraph in entry
不适用,因为
entry
是一个大字符串,
paration
是较小的字符串,我试图询问ar是否在entry中,而`` f `。。。在``中,不能在另一个字符串中捕获一个字符串,但我不能确定,这就是为什么我添加了该字符串,并询问这是否是问题所在,以及如何解决它。如果提供一个小xml文件,该代码对于mcve来说非常好。但最重要的是,你要走一步,看看事情是否符合你的期望。有章节吗?段落是否与您所匹配的内容相匹配?你不需要怀疑——在那里放一个调试打印,然后知道。我还建议你买一个xml解析器。试图用正则表达式编写自己的xml是非常脆弱的。请提供一个或进行一些基本调试。如果没有调试器,请在附加处打印。你还没有证明有任何东西符合实际附加的条件。肯尼:最小的、完整的和可变的是我试图做的。我对编码还是相当陌生的,代码的第二部分是我能得到的最简单的部分。我怀疑它没有附加的原因是,正如我在帖子中所说的,if语句
if pragaraph in entry
不适用,因为
entry
是一个大字符串,
paration
是较小的字符串,我试图询问ar是否在entry中,而`` f `。。。在``中,不能在另一个字符串中捕获一个字符串,但我不能确定,这就是为什么我添加了该字符串,并询问这是否是问题所在,以及如何解决它。如果提供一个小xml文件,该代码对于mcve来说非常好。但最重要的是,你要走一步,看看事情是否符合你的期望。有章节吗?段落是否与您所匹配的内容相匹配?你不需要怀疑——在那里放一个调试打印,然后知道。我还建议你买一个xml解析器。试图用正则表达式编写自己的xml是非常脆弱的。