从URL获取所有.nc文件以使用matlab获取数据

时间:2014-02-04 11:55:18

标签: matlab url netcdf

我想从URL获取所有.nc文件,以便使用matlab获取和读取数据。但是,文件名总是很长,并且在所有文件中都有所不同。 例如,我有

    url = 'http://sourcename/filename.nc'

源名称始终相同,但文件名很长且有所不同,所以我想使用*来获取url中的任何.nc文件

e.g。

    url = 'http://sourcename/*.nc'

但是这不起作用,我猜我需要得到确切的名字 - 所以我不知道该怎么办?

另一方面,我可能也很有兴趣获取每个文件的名称并记录它,但不知道如何做到这一点。

提前多多感谢!!

2 个答案:

答案 0 :(得分:1)

HTTP没有实现文件系统抽象。这意味着您请求的每个URL都可以以完全不同的方式处理。在许多情况下,也无法从父级(目录列表,换句话说)获取允许的URL列表。

http://sourcename/实际上可能会返回包含文件列表的索引文档。在这种情况下,首先获取该文档。然后,您将必须解析内容以提取文件列表。然后,您可以遍历这些文件,为每个文件形成新的URL,并按顺序获取它们。

答案 1 :(得分:1)

如果文本文件中有文件名列表,则可以使用wget实用程序处理文件并获取所有列出的文件。该文件的格式如下:

http://url.com/file1.nc
http://url.com/file2.nc
(etc)

然后您将按如下方式调用wget

$ wget -i url-file.txt

或者,您可以使用wget递归获取文件,如果它们都位于Web服务器上的同一目录中,例如:

$ wget -r -l1 http://url.com/directory

-r标志表示递归,-l1标志表示在递归时不会超过1级。

此解决方案在Matlab外部,但是一旦下载了所有文件,您就可以在本地使用它们。

wget是一个在linux系统上可用的相当标准的实用程序。它也适用于OSX和Windows。 wget主页位于:https://www.gnu.org/software/wget/