else
This commit is contained in:
parent
2e337c77c5
commit
97403c7d5f
11 changed files with 96 additions and 39 deletions
|
@ -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):
|
||||||
|
@ -58,4 +71,4 @@ def title(text):
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
transformation = sys.argv[1]
|
transformation = sys.argv[1]
|
||||||
brename(transformation)
|
brename(transformation)
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
|
'''
|
||||||
|
Batch rename files by replacing the first argument with the second.
|
||||||
|
'''
|
||||||
import brename
|
import brename
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
replace_from = sys.argv[1]
|
replace_from = sys.argv[1]
|
||||||
replace_to = sys.argv[2]
|
replace_to = sys.argv[2]
|
||||||
command = 'x.replace("{f}", "{t}")'.format(f=replace_from, t=replace_to)
|
command = 'x.replace("{f}", "{t}")'.format(f=replace_from, t=replace_to)
|
||||||
brename.brename(command)
|
brename.brename(command)
|
||||||
|
|
|
@ -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])
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
'''
|
||||||
|
Pull all of the files in nested directories into the current directory.
|
||||||
|
'''
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
@ -33,4 +37,4 @@ def main():
|
||||||
os.rename(f.absolute_path, local)
|
os.rename(f.absolute_path, local)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
|
|
|
@ -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
|
||||||
|
@ -25,4 +32,4 @@ for filename in spinal.walk_generator():
|
||||||
if matches:
|
if matches:
|
||||||
print(filename)
|
print(filename)
|
||||||
print('\n'.join(matches))
|
print('\n'.join(matches))
|
||||||
print()
|
print()
|
||||||
|
|
|
@ -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))
|
||||||
|
|
|
@ -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')
|
|
|
@ -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
19
Toolbox/sorted.py
Normal 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)
|
|
@ -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
22
Toolbox/unique.py
Normal 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)
|
Loading…
Reference in a new issue