有什么想法可以让arff.loadarff
从URL工作?{ar7.am正在尝试从下面的Python文件中读取
我试过几种方法,但核心问题是urllib.请求返回一个文件或类似文件的对象,以便装载机能正确识别和阅读。在
以下是我尝试的一些方法和结果:
from scipy.io import arff
import urllib.request
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/00327/Training%20Dataset.arff"
response = urllib.request.urlopen(url)
data, meta = arff.loadarff(response)
由于urlopen返回了一个响应对象,因此这将产生一个错误TypeError。在
我还试着遵循公认答案here中的解决方案:
^{pr2}$但这也会产生一个类型错误,因为编解码器.iterdecode返回生成器。还有这个:
from scipy.io import arff
import urllib.request
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/00327/Training%20Dataset.arff"
ftpstream = urllib.request.urlopen(url)
data, meta = arff.loadarff(ftpstream.read().decode('utf-8'))
这将以字符串的形式访问文件,但返回完整的arff文件作为文件名,我得到一个错误,即文件名太长。在
你快到了。}的结果都不满足。因此,方法是使用
loadarff()
需要一个类似文本文件的对象,urlopen()
和{io.StringIO()
将文本字符串内容包装到类似文件的对象中:这里的类文件对象表示
x
可以执行x.read()
并返回字符串,就像open(filename)
返回的file对象一样相关问题 更多 >
编程相关推荐