赞
踩
我,python,除了不会生孩子,什么都会!
虽然这句话是一句玩笑话,但是也从侧面反映了python的应用前景广阔。Python像是叮当猫的口袋,几乎什么都能做,适合外行小白们去摸索学习,能极大的增加对编程的兴趣。有些工具用python来实现不一定是技术上的最优选择,但可能是最简洁、最面向大众的。
下面介绍几个用Python实现的神奇好玩的事情:
很多时候在学习时发现许多文档都是PDF格式,PDF格式却不利于学习使用,因此需要将PDF转换为Word文件,但或许你从网上下载了很多软件,但只能转换前五页(如WPS等),要不就是需要收费,这个时候,我们就可以用到Python了。
PDF转Word功能所需的依赖包如下:
PDFParser(文档分析器),PDFDocument(文档对象),PDFResourceManager(资源管理器),PDFPageInterpreter(解释器),PDFPageAggregator(聚合器),LAParams(参数分析器)
from pdf2docx import Converter import PySimpleGUI as sg def pdf2word(file_path): file_name = file_path.split('.')[0] doc_file = f'{file_name}.docx' p2w = Converter(file_path) p2w.convert(doc_file, start=0, end=None) p2w.close() return doc_file def main(): # 选择主题 sg.theme('DarkAmber') layout = [ [sg.Text('pdfToword', font=('微软雅黑', 12)), sg.Text('', key='filename', size=(50, 1), font=('微软雅黑', 10))], [sg.Output(size=(80, 10), font=('微软雅黑', 10))], [sg.FilesBrowse('选择文件', key='file', target='filename'), sg.Button('开始转换'), sg.Button('退出')]] # 创建窗口 window = sg.Window("张卧虎", layout, font=("微软雅黑", 15), default_element_size=(50, 1)) # 事件循环 while True: # 窗口的读取,有两个返回值(1.事件;2.值) event, values = window.read() print(event, values) if event == "开始转换": if values['file'] and values['file'].split('.')[1] == 'pdf': filename = pdf2word(values['file']) print('文件个数 :1') print('\n' + '转换成功!' + '\n') print('文件保存位置:', filename) elif values['file'] and values['file'].split(';')[0].split('.')[1] == 'pdf': print('文件个数 :{}'.format(len(values['file'].split(';')))) for f in values['file'].split(';'): filename = pdf2word(f) print('\n' + '转换成功!' + '\n') print('文件保存位置:', filename) else: print('请选择pdf格式的文件哦!') if event in (None, '退出'): break window.close() main()
这里用到pillow和removebg,分别用于修改照片尺寸和抠图。这里removebg用到了AI技术,抠图边缘很柔和,效果挺不错的。
# encoding=utf-8 from PIL import Image from removebg import RemoveBg # removebg涉及到api_key,需要到其官网申请 api_key = 'PysKLJueeoyK9NbJXXXXXXXXX' def change_bgcolor(file_in, file_out, api_key, color): ''' #必须为png格式 ''' p, s = file_in.split(".") rmbg = RemoveBg(api_key, 'error.log') rmbg.remove_background_from_img_file(file_in) file_no_bg = "{}.{}_no_bg.{}".format(p, s, s) no_bg_image = Image.open(file_no_bg) x, y = no_bg_image.size new_image = Image.new('RGBA', no_bg_image.size, color=color) new_image.paste(no_bg_image, (0, 0, x, y), no_bg_image) new_image.save(file_out) # 修改照片尺寸 def change_size(file_in, file_out, width, height): image = Image.open(file_in) resized_image = image.resize((width, height), Image.ANTIALIAS) resized_image.save(file_out) if __name__ == "__main__": file_in = 'E:\girl.png' file_out = 'E:\girl_cutout.png' # 尺寸可按需求自修改 # change_size(file_in, file_out, width, height) # 换背景色 color = (0, 125, 255) change_bgcolor(file_in, file_out, api_key, color)
现在市面上有不少翻译软件,Python也能做!
代码:
# -*- coding: utf-8 -*- import urllib2 import urllib # python2.7才需要两个urllib import json while True: content = raw_input("请输入需要翻译的内容:") # 系统捕获输入,就是命令框会弹出提示,需要你进行手动输入 if content == 'q': # 输入q退出while循环 break url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null" data = {} # 构造data,里面构造参数传入 data['type'] = 'AUTO' data['i']=content data['doctype'] = 'json' data['xmlVersion'] = '1.8' data['keyfrom'] = 'fanyi.web' data['ue'] = 'UTF-8' data['action'] = 'FY_BY_ENTER' data['typoResult'] = 'true' data = urllib.urlencode(data).encode('utf-8') # 将构造的data编码 req = urllib2.Request(url) # 向浏览器发出请求 response = urllib2.urlopen(req, data) # 带参请求,返回执行结果 html = response.read().decode('utf-8') # print(html) # 可以取消print的注释,查看其中效果,这边获取的结果是进行解析 target = json.loads(html) # 以json形式载入获取到的html字符串 print "翻译的内容是:"+target['translateResult'][0][0]['tgt'].encode('utf-8') # 请输入需要翻译的内容:test # 翻译的内容是:测试 # 请输入需要翻译的内容:测试 # 翻译的内容是:test # 请输入需要翻译的内容:q
词云图一般用来凸显文本关键词,产生视觉上的焦点,利用好词云会让数据更加有说服力。
python也有专门制作词云的库-wordcloud,能自定义颜色和形状。
比如我用小丑的豆瓣评论做成一张词云图。
作词云图,首先要对收集文本,然后对文本做分词处理,最后生成词云。
这里不对前两步做详细解析,只给出词云代码:
def wordCloudImage(wordlist,width,height,bgcolor,savepath): # 可以打开你喜欢的词云展现背景图 # cloud_mask = np.array(Image.open('nezha.png')) # 定义词云的一些属性 wc = WordCloud( width=width, # 图幅宽度 900 height=height, # 图幅高度 3000 background_color=bgcolor, # 背景图分割颜色为白色 "black" # mask=cloud_mask, # 背景图样 max_words=300, # 显示最大词数 font_path='./fonts/simhei.ttf', # 显示中文 collocations=False, # min_font_size=5, # 最小尺寸 # max_font_size=100, # 最大尺寸 ) # wordfile是分词后的词汇列表 x = wc.generate(wordlist) # 生成词云图片 image = x.to_image() # 展示词云图片 image.show() # savepath是图片保存地址,保存词云图片 wc.to_file(savepath)
python还可以做很多有趣的去哦天事情,大家可以玩起来!
这里给大家分享一份Python全套学习资料,包括学习路线、软件、源码、视频、面试题等等,都是我自己学习时整理的,希望可以对正在学习或者想要学习Python的朋友有帮助!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。