This commit is contained in:
Ethan Dalool 2016-12-04 17:50:52 -08:00
parent 2e337c77c5
commit 97403c7d5f
11 changed files with 96 additions and 39 deletions

View file

@ -1,11 +1,24 @@
'''
Batch rename files by providing a string to be `eval`ed, using variable `x` as
the current filename.
Yes I know this is weird, but for certain tasks it's just too quick and easy to pass up.
For example:
Prefix all the files:
brename.py "'Test_' + x"
Keep the first word and extension:
brename.py "(x.split(' ')[0] + '.' + x.split('.')[-1]) if ' ' in x else x"
'''
import os import os
import random
import re
import sys import sys
def brename(transformation): def brename(transformation):
old = os.listdir() old = os.listdir()
if 're.' in transformation:
import re
new = [eval(transformation) for x in old] new = [eval(transformation) for x in old]
pairs = [] pairs = []
for (x, y) in zip(old, new): for (x, y) in zip(old, new):

View file

@ -1,3 +1,6 @@
'''
Batch rename files by replacing the first argument with the second.
'''
import brename import brename
import sys import sys

View file

@ -1,7 +1,9 @@
'''
Dump the clipboard to stdout. I use this for redirecting to files.
'''
import pyperclip import pyperclip
import sys import sys
if len(sys.argv) > 1: if len(sys.argv) > 1:
from voussoirkit import clipext from voussoirkit import clipext
stuff = clipext.resolve(sys.argv[1]) stuff = clipext.resolve(sys.argv[1])

View file

@ -1,3 +1,7 @@
'''
Pull all of the files in nested directories into the current directory.
'''
import os import os
import sys import sys

View file

@ -1,3 +1,10 @@
'''
Search for a target string within the lines of files.
For example:
fileswith.py *.py "import random"
'''
import fnmatch import fnmatch
import glob import glob
import re import re

View file

@ -1,3 +1,12 @@
'''
Find time, filesize, or bitrate, given two of the three.
For example:
kbps.py --time 1:00:00 --size 2g
kbps.py --time 1:00:00 --kbps 4660
kbps.py --size 2g --kpbps 4660
'''
import argparse import argparse
import sys import sys
@ -45,7 +54,8 @@ def kbps(time=None, size=None, kbps=None):
kibs = size / 1024 kibs = size / 1024
kilobits = kibs * 8 kilobits = kibs * 8
kbps = kilobits / seconds kbps = kilobits / seconds
return int(kbps) kbps = '%d kbps' % int(round(kbps))
return kbps
def example_argparse(args): def example_argparse(args):
print(kbps(time=args.time, size=args.size, kbps=args.kbps)) print(kbps(time=args.time, size=args.size, kbps=args.kbps))

View file

@ -1,31 +0,0 @@
import sys
# pip install
# https://raw.githubusercontent.com/voussoir/else/master/_voussoirkit/voussoirkit.zip
from vousoirkit import bytestring
def hms_s(hms):
hms = hms.split(':')
seconds = 0
if len(hms) == 3:
seconds += int(hms[0])*3600
hms.pop(0)
if len(hms) == 2:
seconds += int(hms[0])*60
hms.pop(0)
if len(hms) == 1:
seconds += int(hms[0])
return seconds
def calc(seconds, goal_bytes):
goal_kibs = goal_bytes / 1024
goal_kilobits = goal_kibs * 8
goal_kbps = goal_kilobits / seconds
goal_kbps = round(goal_kbps, 2)
return goal_kbps
if __name__ == '__main__':
length = sys.argv[1] # HH:MM:SS
goal_bytes = bytestring.parsebytes(sys.argv[2])
seconds = hms_s(length)
print(calc(seconds, goal_bytes), 'kbps')

View file

@ -1,3 +1,8 @@
'''
Recompress all jpg images in the current directory.
Add /r to do nested directories as well.
'''
from voussoirkit import bytestring from voussoirkit import bytestring
import io import io
import os import os

19
Toolbox/sorted.py Normal file
View file

@ -0,0 +1,19 @@
'''
Sort the lines coming from stdin and print them.
'''
from voussoirkit import clipext
import sys
if len(sys.argv) > 1:
text = clipext.resolve(sys.argv[1])
else:
text = clipext.resolve('!input')
text = text.split('\n')
if '-l' in sys.argv:
text.sort(key=lambda x: x.lower())
else:
text.sort()
new_text = '\n'.join(text)
print(new_text)

View file

@ -1,3 +1,6 @@
'''
Create the file, or update the last modified timestamp.
'''
import glob import glob
import os import os
import sys import sys

22
Toolbox/unique.py Normal file
View file

@ -0,0 +1,22 @@
'''
Keep the unique lines coming from stdin and print them.
'''
from voussoirkit import clipext
import sys
if len(sys.argv) > 1:
text = clipext.resolve(sys.argv[1])
else:
text = clipext.resolve('!input')
text = text.split('\n')
new_text = []
seen = set()
for item in text:
if item not in seen:
new_text.append(item)
seen.add(item)
new_text = '\n'.join(new_text)
print(new_text)