文件读取在Brython/Python中不起作用
我的要求:从ID为rtfile1的输入类型=文件中读取内容,然后将其写入ID为-rt1的文本区域 根据[I]上的文档,我尝试读取一个文件,但失败,出现以下错误: 访问位于“”的XMLHttpRequestfile:///C:/fakepath/requirements.txt'源站已被CORS策略阻止:跨源站请求仅支持协议方案:http、数据、chrome、chrome扩展、https 我试着遵循两个Brython代码,它们都失败了,出现了前面提到的相同错误 代码1:文件读取在Brython/Python中不起作用,python,brython,Python,Brython,我的要求:从ID为rtfile1的输入类型=文件中读取内容,然后将其写入ID为-rt1的文本区域 根据[I]上的文档,我尝试读取一个文件,但失败,出现以下错误: 访问位于“”的XMLHttpRequestfile:///C:/fakepath/requirements.txt'源站已被CORS策略阻止:跨源站请求仅支持协议方案:http、数据、chrome、chrome扩展、https 我试着遵循两个Brython代码,它们都失败了,出现了前面提到的相同错误 代码1: def file_read
def file_read(ev):
doc['rt1'].value = open(doc['rtfile1'].value).read()
doc["rtfile1"].bind("input", file_read)
代码2:
def file_read(ev):
def on_complete(req):
if req.status==200 or req.status==0:
doc['rt1'].value = req.text
else:
doc['rt1'].value = "error "+req.text
def err_msg():
doc['rt1'].value = "server didn't reply after %s seconds" %timeout
timeout = 4
def go(url):
req = ajax.ajax()
req.bind("complete", on_complete)
req.set_timeout(timeout, err_msg)
req.open('GET', url, True)
req.send()
print('Triggered')
go(doc['rtfile1'].value)
doc["rtfile1"].bind("input", file_read)
任何帮助都将不胜感激。谢谢!!!:这与Brython无关。使用等效Javascript,您将获得相同的结果,但与您告诉浏览器要上载哪个文件的方式有关 如果通过HTML标记选择文件,例如 doc['rtfile1'引用的对象在Brython代码中,有一个属性值,但它不是文件路径或url,正如您在错误消息中看到的那样,它是由浏览器生成的伪造路径,不能将其用作Brython函数open的参数,也不能用作向其发送Ajax请求的url;如果要使用文件url,应在基本输入标记中输入它,而不使用type=f伊莱 最好选择type=file的文件,但在这种情况下,对象doc['rtfile1']是一个文件列表对象,如中所述,其第一个元素是文件对象。不幸的是,读取其内容不像open那么简单,但下面是一个工作示例: 从浏览器的“导入”窗口,将文档作为文档 def文件_readev: def onloadevent: 读取文件时触发。FileReader实例为 事件。目标。 作为文本的文件内容是FileReader实例的结果 属性 doc['rt1'].value=event.target.result 将所选文件作为DOM文件对象获取 file=doc['rtfile1'].文件[0] 创建一个新的DOM FileReader实例 reader=window.FileReader.new 以文本形式读取文件内容 reader.readAsTextfile reader.bindload,onload 文档[rtfile1]。bindinput,文件\u已读
这与Brython无关,与等效Javascript的结果相同,但与告诉浏览器要上载哪个文件的方式有关 如果通过HTML标记选择文件,例如 doc['rtfile1'引用的对象在Brython代码中,有一个属性值,但它不是文件路径或url,正如您在错误消息中看到的那样,它是由浏览器生成的伪造路径,不能将其用作Brython函数open的参数,也不能用作向其发送Ajax请求的url;如果要使用文件url,应在基本输入标记中输入它,而不使用type=f伊莱 最好选择type=file的文件,但在这种情况下,对象doc['rtfile1']是一个文件列表对象,如中所述,其第一个元素是文件对象。不幸的是,读取其内容不像open那么简单,但下面是一个工作示例: 从浏览器的“导入”窗口,将文档作为文档 def文件_readev: def onloadevent: 读取文件时触发。FileReader实例为 事件。目标。 作为文本的文件内容是FileReader实例的结果 属性 doc['rt1'].value=event.target.result 将所选文件作为DOM文件对象获取 file=doc['rtfile1'].文件[0] 创建一个新的DOM FileReader实例 reader=window.FileReader.new 以文本形式读取文件内容 reader.readAsTextfile reader.bindload,onload 文档[rtfile1]。bindinput,文件\u已读