added btree data dump
This commit is contained in:
@@ -122,13 +122,12 @@ In its present form, the module has these limitations:
|
|||||||
* filenames are limited to 255 chars
|
* filenames are limited to 255 chars
|
||||||
* file contents must be text
|
* file contents must be text
|
||||||
* or have a `\n` at least every 4096 characters
|
* or have a `\n` at least every 4096 characters
|
||||||
* `sed()` requires lines <=2048 characters, and this `sed()` won't match binary chars
|
* `sed()` requires lines <=2048 characters, and this `sed()` will not match binary chars
|
||||||
* in the simple shell
|
* in the simple shell
|
||||||
* filenames must not have spaces
|
* filenames must not have spaces
|
||||||
* patterns with spaces ***must*** be quoted
|
* patterns with spaces ***must*** be quoted
|
||||||
* the target of `cp` and `mv` *cannot* be a simple a directory-name as in Linux; write the whole filename *w.r.t,* the current directory
|
* the target of `cp` and `mv` *cannot* be a simple a directory-name as in Linux; write the whole filename *w.r.t* the current directory
|
||||||
* for the `sed` function and command, the
|
* for the `sed` function and command, the [search](https://docs.micropython.org/en/latest/library/ure.html) pattern can have wildcards like ``\s`, `\w` and `\d`. The replace pattern cannot have *any* of these, and can only have `\0`, `\1`, etc
|
||||||
[search](https://docs.micropython.org/en/latest/library/ure.html) pattern can have wildcards like ``\s`, `\w` and `\d`. The replace pattern cannot have *any* of these, and can only have `\0`, `\1`, etc
|
|
||||||
* search patterns involving \ escapes other than those and `\'` probably won't work
|
* search patterns involving \ escapes other than those and `\'` probably won't work
|
||||||
* the complexity of pattern matching is limited.
|
* the complexity of pattern matching is limited.
|
||||||
* try to format the grep patterns so they avoid deep stack recursion. For example, `([^#]|\\#)\s*` has a very generous search term as the first half, and can cause deep-stack recursion. The equivalent `(\\#|[^#])\s*` is more likely to succeed.
|
* try to format the grep patterns so they avoid deep stack recursion. For example, `([^#]|\\#)\s*` has a very generous search term as the first half, and can cause deep-stack recursion. The equivalent `(\\#|[^#])\s*` is more likely to succeed.
|
||||||
@@ -230,6 +229,7 @@ exec <python-filename> # execute a small python file
|
|||||||
free # display the heap size: used + free
|
free # display the heap size: used + free
|
||||||
wc <filename> # display the line count, word count and bytes
|
wc <filename> # display the line count, word count and bytes
|
||||||
less/more [-n] <filename> # similar to cat, but displays 30 lines at a time
|
less/more [-n] <filename> # similar to cat, but displays 30 lines at a time
|
||||||
|
btree <filename> # display the content of a BTREE database
|
||||||
```
|
```
|
||||||
Synonyms: `ip = ifconfig`, `more = less`, `dig = nslookup = host`
|
Synonyms: `ip = ifconfig`, `more = less`, `dig = nslookup = host`
|
||||||
|
|
||||||
|
|||||||
30
tf_extend.py
30
tf_extend.py
@@ -1,4 +1,4 @@
|
|||||||
import os,sys,network,socket,time,machine,gc,tf
|
import os,sys,network,socket,time,machine,gc,tf,btree
|
||||||
|
|
||||||
# these helper classes let us use the tf.transfer() iterator,
|
# these helper classes let us use the tf.transfer() iterator,
|
||||||
# by intercepting the .write()
|
# by intercepting the .write()
|
||||||
@@ -81,12 +81,33 @@ def cmd(args):
|
|||||||
print("ch: {}\tRSSI: {}\t{}\tSSID: {}".format(i[2],i[3],"open" if i[4]==0 else "",i[0]))
|
print("ch: {}\tRSSI: {}\t{}\tSSID: {}".format(i[2],i[3],"open" if i[4]==0 else "",i[0]))
|
||||||
|
|
||||||
elif cmd=='freq':
|
elif cmd=='freq':
|
||||||
if len(args)==1 or args[1] in ("160","80"):
|
# identify esp32 or esp8266
|
||||||
|
try: # is this esp8266
|
||||||
|
machine.TouchPad
|
||||||
|
freqs=("160","80","240")
|
||||||
|
except AttributeError:
|
||||||
|
freqs=("160","80")
|
||||||
|
if len(args)==1 or args[1] in freqs:
|
||||||
if len(args)>1:
|
if len(args)>1:
|
||||||
machine.freq(int(args[1])*1000000)
|
machine.freq(int(args[1])*1000000)
|
||||||
print("master cpu frequency {}MHz".format(machine.freq()//1000000))
|
print("master cpu frequency {}MHz".format(machine.freq()//1000000))
|
||||||
else:
|
else:
|
||||||
print("syntax: freq [ 160 | 80 ]")
|
print("syntax: freq [ 160 | 80 | 240 ] ")
|
||||||
|
|
||||||
|
elif cmd=='btree':
|
||||||
|
try:
|
||||||
|
f=open(args[1])
|
||||||
|
b=btree.open(f)
|
||||||
|
print("Key\t\tValue")
|
||||||
|
i=0
|
||||||
|
for w in b:
|
||||||
|
print("{}\t{}".format(w,b[w]))
|
||||||
|
i+=1
|
||||||
|
if i%30==0:
|
||||||
|
r=input("continue? ")
|
||||||
|
if r=='n': break
|
||||||
|
except OSError:
|
||||||
|
print("file not found or is not a btree database")
|
||||||
|
|
||||||
elif cmd=='exec':
|
elif cmd=='exec':
|
||||||
try:
|
try:
|
||||||
@@ -99,9 +120,10 @@ def cmd(args):
|
|||||||
print("==Extended commands")
|
print("==Extended commands")
|
||||||
print(" connect <essid> <password> \tscan")
|
print(" connect <essid> <password> \tscan")
|
||||||
print(" ifconfig/ip \t\thost/dig/nslookup <domain.name>")
|
print(" ifconfig/ip \t\thost/dig/nslookup <domain.name>")
|
||||||
print(" freq [ 160 | 80 ] \t\texec <python-filename>")
|
print(" freq [160 | 80 | 240]\texec <python-filename>")
|
||||||
print(" free \t\t\twc <filename>")
|
print(" free \t\t\twc <filename>")
|
||||||
print(" less/more [-n] <filename>")
|
print(" less/more [-n] <filename>")
|
||||||
|
print(" bt-list <filename>")
|
||||||
else: # command not found
|
else: # command not found
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|||||||
Reference in New Issue
Block a user