python module for command-line filter
Project description
#Name
jjcli - python module for command-line filter
#Synopsys
jjcli skel ## for a initial filter skeleton jjcli ## for manual
--
from jjcli import * ## re.* functions also imported c=clfilter(opt="do:") ## options in c.opt; ## autostrip (def=True) ## inplace (def=False) ## fs (for csvrow()) (def=",")
for line in c.input():... ## process one rstriped line at the time for txt in c.slurp():... ## process one striped text at the time ## process txt ## (end of line spaces and \r also removed) for par in c.paragraph():... ## process one striped paragraph at the time for tup in c.csvrow():... ## process one csv row at the time for tup in c.tsvrow():... ## process one tsv row at the time
c.lineno() ## line number c.filelineno() c.parno() ## paragraph number c.fileparno() c.filename() ## filename or "" c.nextfile() c.isfirstline()
#Description
jjcli is a python module that tries to simplify the creation of unix filters by importing:
- getopt (for command line options ans args)
- fileinput (for [files/stdin] arguments)
- re (regular expressions)
- csv (for csv and tsv inputs)
- urllib.request (to deal with input argumens that are url)
- subprocess
regular expressions
imports all functions from re.* Use re.I re.X re.S for regexp flags
subprocesses (qx, qxlines, qxsystem)
a=qx( "ls" ) for x in qxlines("find | grep '.jpg$'"): ... qxsystem("vim myfile")
execute command return its stdout
def qx(*x) : return subprocess.getoutput(x)
execute command return its stdout lines
def qxlines(*x) : return subprocess.getoutput(x).splitlines()
execute command -- system
def qxsystem(*x): subprocess.call(x,shell=True)
Other functions
def slurpurlutf8(self,f):
filename = lambda s : F.filename() # inherited from fileinput filelineno = lambda s : F.filelineno() lineno = lambda s : F.lineno() fileparno = lambda s : s.fileparno_ parno = lambda s : s.parno_ nextfile = lambda s : F.nextfile() isfirstline = lambda s : F.isfirstline() close = lambda s : F.close()
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
Built Distribution
Hashes for jjcli-0.1.12-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d054deeb635f6de8feaeb47f162eb3a619a432399504a664b6b7e537d75bd6a |
|
MD5 | 5e11fab184dd81bb163871dc088e79f4 |
|
BLAKE2b-256 | 73d7ccf00b67451d990491d9c193c7e2a2bea1baf4a7c5cbd3bdb096965a4ee0 |