describe and list command: if datapackage.json is not provided describe will load a sample from every tabular data file in a dataset and infer a schema while list is a very lean and quick command operating only with available metadata and not touching actual data files.
With Frtictionless describe command you can get a metadata of file or a dataset.
By default, it outputs metadata visually formatted:
frictionless describe tables/*.csv
─────────────────────────────────── Dataset ────────────────────────────────────
dataset
┏━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓
┃ name ┃ type ┃ path ┃
┡━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━━━━━━┩
│ chunk1 │ table │ tables/chunk1.csv │
│ chunk2 │ table │ tables/chunk2.csv │
└────────┴───────┴───────────────────┘
──────────────────────────────────── Tables ────────────────────────────────────
chunk1
┏━━━━━━━━━┳━━━━━━━━┓
┃ id ┃ name ┃
┡━━━━━━━━━╇━━━━━━━━┩
│ integer │ string │
└─────────┴────────┘
chunk2
┏━━━━━━━━━┳━━━━━━━━┓
┃ id ┃ name ┃
┡━━━━━━━━━╇━━━━━━━━┩
│ integer │ string │
└─────────┴────────┘
It's possible to output as YAML or JSON, for example:
frictionless describe tables/*.csv --yaml
resources:
- name: chunk1
type: table
path: tables/chunk1.csv
scheme: file
format: csv
mediatype: text/csv
encoding: utf-8
schema:
fields:
- name: id
type: integer
- name: name
type: string
- name: chunk2
type: table
path: tables/chunk2.csv
scheme: file
format: csv
mediatype: text/csv
encoding: utf-8
schema:
fields:
- name: id
type: integer
- name: name
type: string