Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.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修改HTML并再次写入文件的方法?_Python_Html_Flask_Escaping_Jinja2 - Fatal编程技术网

是否有一个“问题”;“安全”;用Python修改HTML并再次写入文件的方法?

是否有一个“问题”;“安全”;用Python修改HTML并再次写入文件的方法?,python,html,flask,escaping,jinja2,Python,Html,Flask,Escaping,Jinja2,我正在用Flask/Jinja创建一个博客,并将每个博客的html内容存储到一个.json文件中(用于特定需要)。我注意到,在使用以下工具将html内容读入Python时: with open(filepath, 'r') as f: data = f.read() 当我打印原始数据时,一切看起来都很好。但是,当我使用Python修改和提取html的部分内容时,突然之间,换行符被\n替换,而“被替换为\”则在再次用作html时(或在转储到稍后打开的.json文件中时),会破坏所有内容。

我正在用Flask/Jinja创建一个博客,并将每个博客的html内容存储到一个.json文件中(用于特定需要)。我注意到,在使用以下工具将html内容读入Python时:

with open(filepath, 'r') as f:
    data = f.read()

当我打印原始数据时,一切看起来都很好。但是,当我使用Python修改和提取html的部分内容时,突然之间,换行符被\n替换,而“被替换为\”则在再次用作html时(或在转储到稍后打开的.json文件中时),会破坏所有内容。我知道我可以很容易地替换“\n”,但我很好奇Python为什么会这样做,如果有一种“安全”的方法来处理html,编辑它,然后再次将其写入文件?

不,Python不会这样做。我猜您是在一种情况下打印字符串,在后一种情况下看到它的表示。字符串的表示法旨在清楚地显示其中的实际内容,因此它对许多字符使用转义码进行显示。当然,这只是一个猜测,因为您没有显示任何用于“修改和提取”的代码。如果您想编辑HTML,您应该查看beautifulsoup@kindall之类的库,您是对的,我尝试了第一种情况下的“print(repr(HTML_str)),实际上它也转义了许多字符。是否有一种最佳做法,可以使用Python修改html并将其返回到类似Flask的html模板模块,从而使换行符不会呈现为\n?