我想在Python3中执行以下操作:读取Fortran文件,但要从URL而不是本地文件读取。原因是,对于我的具体示例,有很多文件,我希望避免先下载所有文件
我设法做到了
a)从URL读入简单的.txt文件
import urllib
from urllib.request import urlopen
url='http://www.deus-consortium.org/deus-library/filelist/deus_file_list_501.txt'
data=urllib.request.urlopen(url)
i=0
for line in data: # files are iterable
print(i,line)
i+=1
#alternative: data.read()
b)读入本地Fortran文件(二进制little endian非匹配Fortran文件),如下所示:
from scipy.io import FortranFile
filename='../../Downloads/fof_boxlen648_n2048_rpcdmw7_masst_00000'
ff = FortranFile(filename, 'r')
nhalos=ff.read_ints(dtype=np.int32)[0]
print('number of halos in file',nhalos)
有没有办法避免直接从URL下载和读取Fortran文件?我试过了
import urllib
from urllib.request import urlopen
url='http://www.deus-consortium.org/deus-library/efiler1/Babel_le/boxlen648_n2048_lcdmw7/cube_00090/fof_boxlen648_n2048_lcdmw7_cube_00000'
pathname = urllib.request.urlopen(url)
ff = FortranFile(pathname, 'r')
ff.read_ints()
给出“操作错误:获取文件位置失败”pathname.read()
也不起作用,因为它是fortran文件
有什么想法吗?提前谢谢
也许您可以使用^{} 模块下载和读取数据
例如:
印刷品:
相关问题 更多 >
编程相关推荐