1.å¦ä½ç¨pythonå¶ä½ä¸ªäººç®å
2.使用overleaf在线生成求职/求学个人简历
3.htmlå¶ä½ä¸ªäººç®å代ç ï¼
å¦ä½ç¨pythonå¶ä½ä¸ªäººç®å
ç¨åºåçç®åï¼ä¸è¬éè¿MarkdownæLaTexçæPDFï¼æ¯è¾ç¹å«çæ¯å端ç¨åºåä¼ç¨JavaScriptå®ç°æ´å ç«é ·çç½é¡µçæ¬ç®åãããä½ä¸ºä¸ä¸ªPythonç¨åºåï¼å¯ä»¥éè¿ä¸é¢ç代ç ï¼å¨å½ä»¤è¡çæä¸ä»½ç¬ä¸æ äºçPythonicçç®åã
1 #/usr/bin/env python 2 # coding=utf-8 3 4 import random 5 import re 6 7 8 def color(messages): 9 color = '\x1B[%d;%dm' % (1,简历简历复古小极品源码random.randint(,)) return '%s %s\x1B[0m' % (color,messages) def colorprint(mes, flag=True): def _deco(func): def wrapper(args): res = func(args) print (color(mes + ':\n')) if flag: for k1, v1 in res.items(): if not isinstance(v1, dict): print ('{ 0}: { 1}'.format(k1, v1)) else: print ('{ 0}:'.format(k1)) for k2, v2 in v1.items(): print (' { 0}: { 1}'.format(k2, v2)) else: for i in res: if not isinstance(i[1], dict): print (i) else: for k, v in i[1].items(): print ('{ 0}[{ 1}]: { 2}'.format(k, i[0], v)) print ('\n') return res return wrapper return _deco class Resume(object): def str(self): return color('ç¨å¥çpythonç®å'.center()) @property @colorprint('个人信æ¯') def _personal_information(self): return { 'Name' : 'ç¨å¥', 'Gender' : 'Male', 'Born' : [, 9, ], 'Education' : { 'School Name' : '太åç§æ大å¦', 'Major' : 'çµæ°å·¥ç¨åå ¶èªå¨å', 'Degree' : 'æ¬ç§', 'Graduation' : }, 'Tel' : ', four, nine', 'Email' : 'newerè¾ç¹gmail.com', 'Target Positions' : re.compile( "'Python Developer'|DevOps",re.I|re.M).pattern } @property @colorprint('个人ç¹ç¹') def characteristics(self): return { 'å¿çæ¿åè½å强': 'ä»é计ç®æºä¸ä¸-excel VBAèªå¨å-Pythonå¼å', 'çè¡·ååç±': 'æ£æ¯å 为å欢Python, ææä¼æ¾å¼éè´ç®¡ç', 'èªå¦è½å强': 'èªå¦excel VBAåPythonå®æ项ç®å¹¶æ»¡è¶³éæ±', 'æ¯ ååèæ§': 'å¹´7æ,ç¨8天æ¶é´éªè½¦ä»ä¸æµ·åæ¹åè家', 'is_geek' : True } @property @colorprint('个人è½å') def skills(self): return { 'Language' : { 'çæ' : ['Python', 'VBA'], 'äºè§£' : ['JavaScript', 'C']}, 'OS' : ['macOS', 'Ubuntu', 'åµå ¥å¼Linux'], 'Tool' : ['PyCharm', 'IPython', 'Git'], 'Databaseandtools' : ['MongoDB', 'Redis', 'Memcached'], 'WebFramework' : { 'çæ' : ['Flask', 'Django'], }, 'OtherFramework' : ['Pandas', 'NumPy', 'Celery', 'Beautiful Soup'], 'Other' : 'CET-6' } @property @colorprint('å·¥ä½ç»éª', False) def work_experience(self): return enumerate([ { 'Time period' : '.8-.', 'Company Name' : 'ä¸æµ·ç´¢å¹¿æ åæéå ¬å¸(SONYæä¸)', 'Position' : 'éè´ç®¡ç' }, { 'Time period' : '.9-.', 'Company Name' : 'ä¸æµ·å®åçµåæææéå ¬å¸(å°æ¹¾é¦å¯çæ°¸åºä¹åéå¢æä¸)', 'Position' : 'éè´å' }, ]) @property @colorprint('项ç®ç»éª', False) def projectexperience(self): return enumerate([ { 'Project' : 'VBAå®ç°èªå¨åæ°æ®åæ/æ°æ®æ±æ»/ç½é¡µè¡¨åæ交ç', 'Description' : ('å¨åºå管çåéè´ä¸å¡æ¨è¿çå·¥ä½ä¸,éè¿èªå¦excelå ¬å¼åVBA,' 'å°å项ä¸å¡éç¨excel VBAå®ç°èªå¨å.') }, { 'Project' : 'éªçç»åä»ä½åæå·¥å ·', 'Description' : ('å端使ç¨FlaskåBeautiful Soup,å端使ç¨AngularåD3å¼åçå页é¢åºç¨ï¼' 'è·åéªçIDå ³æ³¨çç»åçè°ä»ä¿¡æ¯åå ³æ³¨ç»åç累计è¡ç¥¨ä»ä½.') }, { 'Project' : 'Django By Exampleéè¡ä¸æ注é', 'Description' : ('Django By Exampleå ¨ä¹¦æå个å®æ´çDjangoå·¥ç¨é¡¹ç®,åå«æ¯å客ç½ç«,å¾ç书ç¾ç¤¾äº¤ç½ç«,' 'è´ç©ç½ç«åå¨çº¿æè²ç½ç«.æå¨éè¡æå代ç ,è°è¯è¿è¡æåå,对代ç ç»åºéè¡æ³¨é.') }, { 'Project' : 'Django-CMSæºä»£ç åæ', 'Description': ('è¿å¨è¿è¡ä¸.ä½ä¸ºä¸ä¸ªå¤§åDjango项ç®åæççç½ç«çæå·¥å ·,' 'Django-CMSçæºä»£ç å¯ä»¥ä½ä¸ºå®æ½Django项ç®çæå¨åè.') } ]) @property @colorprint('@Where', False) def findme(self): return enumerate([ { 'Link' : 'blogs.com/newer', 'Description' : '个人ææ¯å客'}, { 'Link' : '"
meta?http-equiv="Content-Type"?content="text/html;?charset=gb"
titleæ°å»ºç½é¡µ/title
/head
body
div?align="center"
table?border="1"?cellspacing="1"?width=""?style="table-layout:fixed;width:px;min-height:px;"trtd?align="center"å§å/td
td?align="center"/td
td?align="ä¹è¦center"æ§å«/td
td?align="center"/td
td?align="center"åºçbrå¹´æ/td
td?align="center"å²çº¯å¸¦/td
td?rowspan="4"?align="center"ï¼ç §çï¼/td
/trtrtd?align="center"ç±è´¯/td
td?align="center"/td
td?align="center"æ°æ/td
td?align="center"/td
td?align="center"æ¿æ²»bré¢è²/td
td?align="center"/td
/trtrtd?align="center"æ¯ä¸brå¦æ ¡/td