Additional methods for the petl library that enable reading fixed-width files
Project description
# petl_fwf
This package contains two additional methods which add the ability to read fixed-width files to the fabulous [petl package](https://github.com/petl-developers/petl).
## fromfwf
This is the primary method which this package adds. Usage is straightforward, and similar to other methods in the petl library
```sh
>>> import fromfwf
>>> # setup a sample file
... text = ' 18 5 2\\n2018 5 2\\n20180502'
>>> with open('example.txt', 'w') as f:
... f.write(text)
...
28
>>> table1 = etl.fromfwf('example.txt', widths=[4, 2, 2])
>>> table1
+--------+------+------+
| lines | | |
+========+======+======+
| ' 18' | ' 5' | ' 2' |
+--------+------+------+
| '2018' | ' 5' | ' 2' |
+--------+------+------+
| '2018' | '05' | '02' |
+--------+------+------+
>>> # Specify headers for the file
... table1 = etl.fromfwf('example.txt', widths=[4, 2, 2], header=['year', 'month', 'day'])
>>> table1
+--------+-------+------+
| year | month | day |
+========+=======+======+
| ' 18' | ' 5' | ' 2' |
+--------+-------+------+
| '2018' | ' 5' | ' 2' |
+--------+-------+------+
| '2018' | '05' | '02' |
+--------+-------+------+
```
## skiplast
This method will skip the last n rows of a table.
```sh
>>> import petl as etl
>>> table1 = [['foo', 'bar'],
... ['a', 1],
... ['b', 2],
... ['c', 3],
... ['FOOTER ROW']]
>>> table2 = etl.skiplast(table1, 1)
>>> table2
+-----+-----+
| foo | bar |
+=====+=====+
| 'a' | 1 |
+-----+-----+
| 'b' | 2 |
+-----+-----+
| 'c' | 3 |
+-----+-----+
```
This package contains two additional methods which add the ability to read fixed-width files to the fabulous [petl package](https://github.com/petl-developers/petl).
## fromfwf
This is the primary method which this package adds. Usage is straightforward, and similar to other methods in the petl library
```sh
>>> import fromfwf
>>> # setup a sample file
... text = ' 18 5 2\\n2018 5 2\\n20180502'
>>> with open('example.txt', 'w') as f:
... f.write(text)
...
28
>>> table1 = etl.fromfwf('example.txt', widths=[4, 2, 2])
>>> table1
+--------+------+------+
| lines | | |
+========+======+======+
| ' 18' | ' 5' | ' 2' |
+--------+------+------+
| '2018' | ' 5' | ' 2' |
+--------+------+------+
| '2018' | '05' | '02' |
+--------+------+------+
>>> # Specify headers for the file
... table1 = etl.fromfwf('example.txt', widths=[4, 2, 2], header=['year', 'month', 'day'])
>>> table1
+--------+-------+------+
| year | month | day |
+========+=======+======+
| ' 18' | ' 5' | ' 2' |
+--------+-------+------+
| '2018' | ' 5' | ' 2' |
+--------+-------+------+
| '2018' | '05' | '02' |
+--------+-------+------+
```
## skiplast
This method will skip the last n rows of a table.
```sh
>>> import petl as etl
>>> table1 = [['foo', 'bar'],
... ['a', 1],
... ['b', 2],
... ['c', 3],
... ['FOOTER ROW']]
>>> table2 = etl.skiplast(table1, 1)
>>> table2
+-----+-----+
| foo | bar |
+=====+=====+
| 'a' | 1 |
+-----+-----+
| 'b' | 2 |
+-----+-----+
| 'c' | 3 |
+-----+-----+
```
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
petl_fwf-0.0.2.tar.gz
(5.3 kB
view details)
File details
Details for the file petl_fwf-0.0.2.tar.gz
.
File metadata
- Download URL: petl_fwf-0.0.2.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 49587006a26a97cdddc753f9197a4493b65134bcf5d3ae841ecf3bb215fd2ab4 |
|
MD5 | ba481afa3a608d4c0bfcfa0809abeef3 |
|
BLAKE2b-256 | e7f401da5477a4595537bbef0f7fef0373856a298b365a17f2d5661a338febd1 |