在Wolfram Mathematica中处理大数据文件的方法

Igo*_*nko 14 wolfram-mathematica

我想知道Mathematica中是否存在使用大文件的方法?目前我有一个大约500Mb的文件与表数据.

Import["data.txt","Table"];
Run Code Online (Sandbox Code Playgroud)

什么是替代方式?

Tim*_*imo 13

使用OpenRead["file"]它可以为您提供InputStream可以使用的对象Read[stream].根据数据文件的格式,你可能需要设置自定义的选项值Read[]RecordSeparators.

例:

In[1]:= str = OpenRead["ExampleData/USConstitution.txt"]    
Out[1]= InputStream["ExampleData/USConstitution.txt", 24]   

In[2]:= Read[str, Word]    
Out[2]= "We"    
In[3]:= Read[str, Word]
Out[3]= "the"    
In[4]:= Read[str, Record]
Out[4]= "People of the United States, in Order to form a more perfect Union,"
Run Code Online (Sandbox Code Playgroud)

  • 完成后,您需要记住关闭流.此外,如果您中止操作,流将保持打开状态.这可能会导致令人讨厌的惊喜.因此,我建议将读取的代码包装在`CheckAbort`中以捕获中止,然后关闭流,无论操作是否已中止. (8认同)

gde*_*ino 5

您还可以将数据加载到数据库(例如 MySQL)中,并使用DatabaseLink从 Mathematica 访问它