Table (.dat)
Table (.dat)
背景
-
- 通用的表格数据.
- 存储数值和文本信息,格式化为一个表格.
- 支持用户定义的字段和记录分隔符、字段分隔符、货币令牌以及数字格式.
- 纯文本格式.
Import 与 Export
- Import["file.dat"] 返回一个包含字符串和数字的列表的列表,表示文件中存储的行和列.
- Import["file.dat",elem] 从 Table 文件中导入指定的参数.
- Import["file.dat",{elem,subelem1,…}] 导入子元素 subelemi,对于导入部分数据非常有用.
- Import["file.dat",{{elem1,elem2,…}}] 导入多个参数.
- 导入格式可以由 Import["file","Table"] 或 Import["file",{"Table",elem,…}] 指定.
- Export["file.dat",expr] 从 expr 创建一个 Table 文件.
- 支持的表达式 expr 包括:
-
{v1,v2,…} 单列数据 {{v11,v12,…},{v21,v22,…},…} 数据行列表 array 诸如 SparseArray、QuantityArray 等的数组 tseries TimeSeries、EventSeries 或 TemporalData 对象 Dataset[…] 数据集 Tabular[…] 表格对象 - 有关完整的通用信息,请参阅以下参考页面:
-
Import, Export 从文件导入或导出到文件 CloudImport, CloudExport 从云对象导入或导出到云对象 ImportString, ExportString 从字符串导入或导出到字符串 ImportByteArray, ExportByteArray 从字节数组导入或导出到字节数组
参数
- Import 的通用参数:
-
"Elements" 该文件可用的参数和选项列表 "Summary" 文件摘要 "Rules" 所有可用参数的规则列表 - 表示数据的参数:
-
"Data" 二维数组,表示行和列 "EventSeries" 表格数据作为 EventSeries "Grid" 表格数据作为 Grid 对象 "Tabular" 表格数据作为 Tabular 对象 "TimeSeries" 表格数据作为 TimeSeries - 默认情况下,Import 与 Export 使用"Data"参数.
选项
- Import 与 Export 选项:
-
"TextDelimiters" Automatic 用于分隔非数字字段的字符串或字符串列表 - 默认情况下,Export 划分包含具有双引号字符的字段分隔符.
- 当具有显式设置 "TextDelimiters",Export 总是使用指定的字符串令牌分隔文本字段,有效地循环于分隔符列表.
- 当 "TextDelimiters"->{"<",">"},Export 封装文本字段于尖括号内.
- 默认情况下,不导入双引号字符分隔的文本字段.
- Import 选项:
-
ByteOrdering Automatic 字节的顺序 CharacterEncoding "ISOLatin1" 文件中行字符串使用的编码 "CurrencyTokens" {{"$", "
", "
", "
"}, {"c", "
", "p", "F"}}当导入数值值时,跳过的货币单位 "DateStringFormat" None 按 DateString 规范给出的日期格式 "FieldSeparators" {" ","∖t"} 分隔列的字符串令牌 "HeaderLines" 0 文件开头处跳过的行数 "IgnoreEmptyLines" False 是否忽略空行 "LineSeparators" {"∖r\n","∖n","\r"} 分隔行的字符串令牌 "NumberPoint" "." 用于小数点的字符串 "NumberSigns" {"-","+"} 负数和正数的符号字符串 "Numeric" True 如果可能的话是否按数字导入数据字段 "RepeatedSeparators" True 是否解析字段分隔符序列为一单个分隔符 "TimeColumn" Automatic 用来在 "EventSeries" 和 "TimeSeries" 元素中表示时间的列 - 用 CharacterEncoding -> Automatic,Import 尝试推断文件的字符编码.
- Import 把由 "DateStringFormat" 选项指定格式化的表格项转换成一个 DateObject.
- 默认情况下,空行和仅包含空白字符的行被转换成以空白列表. 如果 "IgnoreEmptyLines" 设为 True,Import 将跳过空行.
- 当 "Numeric" -> False,数字将按它们在文件中显示的字符串形式导入.
- 当默认设置为 "LineSeparators",Import 自动识别行分隔字符编码的所有常用规范.
- Export 选项:
-
Alignment None 在表格列中数据是如何对齐的 ByteOrdering Automatic 字节的顺序 CharacterEncoding "UTF8" 文件中行字符串使用的编码 "FieldSeparators" "\t" 用于分隔列的字符串令牌 "TableHeadings" None 表格列与行的标头 - Alignment 的可能设定为 None、Left、Center 和 Right.
- "TableHeadings"可被设为下列值:
-
None 没有标签 Automatic 给出列与行的连续整数标签 {"col1","col2",…} 列标签列表 {rhead,chead} 指定行与列的独立标签 - Export 使用运行 Wolfram 语言的计算机系统的常用规范编码行分隔字符.
范例
打开所有单元 关闭所有单元基本范例 (4)
从 Table 文件导入数据:
Import["ExampleData/isomerization.dat", "HeaderLines" -> 6]//Short将数据作为 Tabular 对象导入:
Import["ExampleData/isomerization.dat", "Tabular", "HeaderLines" -> 6]Import["ExampleData/isomerization.dat", "Summary"]ExportString[RandomReal[10, {4, 3}], "Table"]范围 (8)
导入 (3)
Import["ExampleData/buildings.dat", "Elements"]Import["ExampleData/buildings.dat", "FieldSeparators" -> " | "] // Grid如果指定了日期格式,则 Import 将日期转换为 Wolfram 语言的 DateObject 规范:
ImportString["01/19/00
05/18/02
12/14/04", "Table", "DateStringFormat" -> {"Month", "/", "Day", "/", "YearShort"}]导出 (5)
Export["exchangerate.txt", "$1.00 ¥116.65 €0.7509"]Import["exchangerate.txt", "Table", CharacterEncoding -> "UTF8"]当导出为表格格式时,Wolfram 语言会自动将表达式转换为列表的列表:
ExportString[{1, {1, 2, 3}}, "Table"]ImportString[%, "Table"]ExportString[{{5.0}}, "Table"]ExportString[RandomReal[10, {4, 3}], "Table"]Export["grid.dat", | | | |
| - | --------------------------------------------- | - |
| 1 | x - 1 | 2 |
| 2 | (x - 1) (x + 1) | 3 |
| 3 | (x - 1) (x^2 + x + 1) | 4 |
| 4 | (x - 1) (x + 1) (x^2 + 1) | 4 |
| 5 | (x - 1) (x^4 + x^3 + x^2 + x + 1) | 4 |
| 6 | (x - 1) (x + 1) (x^2 - x + 1) (x^2 + x + 1) | 6 |
| 7 | (x - 1) (x^6 + x^5 + x^4 + x^3 + x^2 + x + 1) | 4 |]Import[%]使用 ExportString 创建数组的格式化版本:
ExportString[ {{10, 1000000, 100}, {1, 10, 10000}}, "Table", "FieldSeparators" -> " ", Alignment -> Left]导入元素 (7)
数据 (2)
Import["ExampleData/buildings.dat", "Data", "FieldSeparators" -> " | "]Import["ExampleData/buildings.dat", "FieldSeparators" -> " | "]Import["ExampleData/buildings.dat", "FieldSeparators" -> " | "]//TextGrid"EventSeries" (1)
从文件中获取数据,并转换为 EventSeries:
Import["ExampleData/buildings.dat", "EventSeries", "FieldSeparators" -> " | ", "HeaderLines" -> Automatic]网格 (1)
将表格文件中的数据导入为 Grid:
Import["ExampleData/buildings.dat", "Grid", "FieldSeparators" -> " | "]表格 (1)
将文件中的数据导入为 Tabular 对象:
Import["ExampleData/buildings.dat", "Tabular", "FieldSeparators" -> " | ", "HeaderLines" -> Automatic]"TimeSeries" (1)
从文件中获取数据,并转换为 TimeSeries:
Import["ExampleData/buildings.dat", "TimeSeries", "FieldSeparators" -> " | ", "HeaderLines" -> Automatic]导入选项 (12)
CharacterEncoding (1)
字符编码可以设置为 $CharacterEncodings 中的任意值:
input = "é";ImportString[input, "Table", CharacterEncoding -> "UTF8"]ImportString[input, "Table", CharacterEncoding -> "ISOLatin1"]"CurrencyTokens" (1)
"DateStringFormat" (1)
ImportString["01/19/00
05/18/02
12/14/04", "Table"]使用指定的日期格式将日期转换为 DateObject:
ImportString["01/19/00
05/18/02
12/14/04", "Table", "DateStringFormat" -> {"Month", "/", "Day", "/", "YearShort"}]"FieldSeparators" (1)
"HeaderLines" (1)
"IgnoreEmptyLines" (1)
"LineSeparators" (1)
"NumberPoint" (1)
tab = ImportString["\"1,1\" a
\"2,53\" b", {"Table", "Tabular"}]tab["ColumnTypes"]使用 "NumberPoint" 选项为浮点数据指定小数点字符:
tab = ImportString["\"1,1\" a
\"2,53\" b", {"Table", "Tabular"}, "NumberPoint" -> ","]tab["ColumnTypes"]"NumberSigns" (1)
"Numeric" (1)
默认情况下,Import 自动将数字解释为数值类型:
ImportString["a b c
1 2 3", {"Table", "Data"}]//InputForm使用 "Numeric"->False 将所有内容作为字符串导入:
ImportString["a b c
1 2 3", {"Table", "Data"}, "Numeric" -> False]//InputForm"RepeatedSeparators" (1)
"TimeColumn" (1)
默认情况下,对于 "TimeSeries" 和 "EventSeries" 的元素,时间列会被自动选中:
Import["ExampleData/buildings.dat", "TimeSeries", "FieldSeparators" -> " | ", "HeaderLines" -> Automatic]Import["ExampleData/buildings.dat", "TimeSeries", "FieldSeparators" -> " | ", "HeaderLines" -> Automatic, "TimeColumn" -> "Year"]导出选项 (4)
Alignment (1)
ExportString[{{10, 1000000, 100}, {1, 10, 10000}}, "Table"]ExportString[{{10, 1000000, 100}, {1, 10, 10000}}, "Table", Alignment -> Left]ExportString[{{10, 1000000, 100}, {1, 10, 10000}}, "Table", Alignment -> Center]CharacterEncoding (1)
字符编码可以用 $CharacterEncodings 中的任意值进行设置:
input = "é";ExportString[input, "Table", CharacterEncoding -> "UTF8"]ExportString[input, "Table", CharacterEncoding -> "ISOLatin1"]"FieldSeparators" (1)
"TableHeadings" (1)
ExportString[{{3, "a"}, {5, "b"}, {7, "c"}}, "Table", "TableHeadings" -> {c1, c2}]ExportString[{{3, "a"}, {5, "b"}, {7, "c"}}, "Table", "TableHeadings" -> {{r1, r2, r3}, {c1, c2}}]ExportString[{{3, "a"}, {5, "b"}, {7, "c"}}, "Table", "TableHeadings" -> Automatic, "Backend" -> "Table"]历史
1999年引入 (4.0) | 在以下年份被更新:2019 (12.0) ▪ 2025 (14.2) ▪ 2026 (15.0)