datascheme.py

cygwin

data-schemeでcssにアイコンを埋め込むための簡単なスクリプト。当方環境がcygwinなのでoutput='/dev/clipboard'としている。他で使う際は、このoutputに注意。

改変。

## dataurischeme.py
import mimetypes
def data(fn,output='/dev/clipboard'):
 mimetypes.init()
 t = mimetypes.guess_type(fn)
 if not t: print 'no mime:',fn; return
 x = t[0]
 m = 'r' if 'text/' in x else 'rb'
 try:
  s = open(fn,m).read()
 except:
  print 'no file:',fn
 else:
  e = 'base64'
  s = s.encode(e).replace("\n",'')
  s = 'data:%s;%s,%s'%(x,e,s)
  open(output,'w').write(s)

旧式。

## datascheme.py
import base64 as b
import mimetypes as m

output='/dev/clipboard'

def datascheme(fn):
 m.init()
 t = m.guess_type(fn)
 if not t:
  print 'no mime:',fn
  return
 try:
  s = get(fn)
  s = enc(s)
 except:
  print 'no file:',fn
 else:
  x = 'data:%s;base64,' % t[0]
  put(x+s)

def put(s):
 f=open(output,'w')
 f.write(s)
 f.close()

def get(fn):
 return open(fn,'r').read()

def enc(s):
 x=b.encodestring(s)
 x=x.replace("\n",'')
 return x