我编写了下面的代码,使用文件API显示本地文件中的文本,但是当我单击按钮时,没有任何反应.我在浏览器中检查元素时出现以下错误.我究竟做错了什么?
未捕获的TypeError:无法在'FileReader'上执行'readAsText':参数1不是'Blob'类型.
<!DOCTYPE html>
<html>
<body>
<p>This example uses the addEventListener() method to attach a click event to a button.</p>
<button id="myBtn">Try it</button>
<pre id="file"></pre>
<script>
document.getElementById("myBtn").addEventListener("click", function(){
var file = "test.txt"
var reader = new FileReader();
document.getElementById('file').innerText = reader.result;
reader.readAsText(file);
});
</script>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
我的html文件有以下行
<tr><td>$nbsp;</td><tr>
Run Code Online (Sandbox Code Playgroud)
但是当我使用lxml进行解析时:
from lxml import tree as ET
tree = ET.parse("file.html")
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "lxml.etree.pyx", line 3310, in lxml.etree.parse (src/lxml/lxml.etree.c:72517)
File "parser.pxi", line 1791, in lxml.etree._parseDocument (src/lxml/lxml.etree.c:105979)
File "parser.pxi", line 1817, in lxml.etree._parseDocumentFromURL (src/lxml/lxml.etree.c:106278)
File "parser.pxi", line 1721, in lxml.etree._parseDocFromFile (src/lxml/lxml.etree.c:105277)
File "parser.pxi", line 1122, in lxml.etree._BaseParser._parseDocFromFile (src/lxml/lxml.etree.c:100227)
File "parser.pxi", line 580, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:94350)
File "parser.pxi", line 690, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:95786)
File "parser.pxi", line 620, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:94853) …Run Code Online (Sandbox Code Playgroud) 有没有办法使用 lxml 的 E-factory 动态创建标签?例如,我收到以下代码的语法错误:
E.BODY(
E.TABLE(
for row_num in range(len(ws.rows)):
row = ws.rows[row_num]
# create a tr tag
E.TR(
for cell_num in range(len(row)):
cell = row[cell_num]
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
for row_num in range(len(ws.rows)):
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud) 我可以通过这种方式使用lambda函数按位或者列表中的所有元素吗?
lst = [1, 1, 1]
f = lambda x: x | b for b in lst
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我会得到一个SyntaxError.