当前位置:首页 » 《随便一记》 » 正文

你都用 Python 来做什么?_1_bit 的博客

22 人参与  2022年03月31日 17:23  分类 : 《随便一记》  评论

点击全文阅读


你们都用python做些什么呢?

在开发中 python 这一个语言就像是小叮当,而 python 的第三方库则是“百宝箱”,你只要想着对某一个方向进行开发,那么这个“百宝箱”就会给你想要的东西。
由于我是在开发多年后接触到的 python,对我来说自从接触 python 就打开了“新世界”的大门。(我正在求设计做一张图,还没做完,做完贴上在这里)

一、做个自己玩游戏的程序

在前几年,我有一个朋友是一个“游戏商人”,不过大多数他是手动进行商品处理。
他有一天找到我,跟我说“嗨兄弟,会不会做外G?”!
此时我觉得他在嘲讽我,为了我自己的自尊,我回答了“不会!”。
请添加图片描述
有一说一,我是一个正经程序员,那一方面我真的不会。不过在他看起来程序员就应该要解决计算机的一切问题,在此观点作祟之下,他一而再再而三的缠着我,最后我听了一下他的需求之后,我又觉得我可以了。

当时他的需求是想完成一个游戏的自动化操作(他自己一个人手动操作烦死了,据说一天可以赚好几百),当时我研究了一下他所说的一个手机游戏,发现所有逻辑都是“死”的,升级套路有固定剧情,并且对应的游戏玩法也相对固定,看他如此坚持我就同意了。

接下来我查了一下 python 相关的资料,发现了一个神奇的东西 Airtest,是网易开发的,据说是为了做一些测试,在原生应用下简直可以“为所欲为”。为了测试这个东西的是否真的牛啤,我就直接下载了 Airtest 的 IDE,在开发时踩了一些坑,但最终还是实现了对应项目的 自动化操作。最后我朋友感激涕零的拉着我喝了三天三夜,当时我觉得我不应该做出来给他去祸害我自己。

二、自动化办公

说到这个自动化办公我本身是不涉及到的,但在粉丝群里有很多同学是为了自动化办公而学习的python,但是由于经验不足,导致学完后自己却不能完成一些应用的开发,就在群里面艾特到我讲解一些功能如何实现。

在这里插入图片描述
我列出了几个比较常规的需求:

  1. 批量文本提取出手机号码
  2. 批量文本存储到 Excel 中
  3. 批量文本提取出邮箱
  4. 批量图片加水印
  5. 批量删除重复文件
  6. 批量文章算中文字数
  7. 批量生成gif
  8. 批量英文翻译
  9. 视频音轨批量提取

像取电话号码、邮箱基本上都是直接使用正则就可以提取了,若是需要操作 Excel 只需要使用 xlwt 库就可以完成,加水印这些只需要使用 opencv 库,对比相同文件只需要判断 md5 文件的值就可以了,翻译就是使用 translate 库。
由于代码不难,我就不在这里写出来了,如果需要的评论区可以留言,人多的话我就更新话题把代码也讲一遍了。

想了想,为了大家的收藏量我决定直接把代码打出来吧。

自动化办公解释文章跳转:https://blog.csdn.net/A757291228/article/details/117464313。

批量文本提取出手机号码:

#读取目标文本文件
def get_str(path):
    f = open(path,encoding="utf-8")  
    data = f.read()
    f.close()
    return data
import re
 
#正则获取文本号码
def get_phone_number(str):
    res = re.findall(r'(13\d{9}|14[5|7]\d{8}|15\d{9}|166{\d{8}|17[3|6|7]{\d{8}|18\d{9})', str)
    return res
#保存得到号码
def save_res(res,save_path):
    save_file = open(save_path, 'w') 
    for phone in res: 
        save_file.write(phone) 
        save_file.write('\n') 
    save_file.write('\n号码共计:'+str(len(res)))
    save_file.close() 
    print('号码读取OK,号码共计:'+str(len(res)))
path=input("请输入文件路径:")
save_path=input("请输入文件保存路径:")
#read_str=get_str(path)
res=get_phone_number(get_str(path))
save_res(res,save_path)

批量文本存储到 Excel 中:

import xlwt
#读取目标文本文件
def get_str(path):
    f = open(path,encoding="utf-8")  
    data = f.read()
    f.close()
    return data
#保存为Excel文件
def save_excel(save_path,sheetname,column_name_list,read_list):
    workbook = xlwt.Workbook()
    sheet1 = workbook.add_sheet(sheetname=sheetname)
    for i in range(0,len(column_name_list)):
        sheet1.write(0,i,column_name_list[i])
    i=1
    for v in read_list:
        kval=v.split(':')
        for j in range(0,len(kval)):
            sheet1.write(i+1,j,kval[j])
        i=i+1
    workbook.save(save_path)
    print('信息保存 OK,记录条数共计:'+str(len(read_list)))
path=input("请输入文件路径:")
save_path=input("请输入文件保存路径:")
sheet_name=input("请输入sheetname:")
column_name=input("请输入列名,并且使用英文逗号隔开:")
column_name_list=column_name.split(',')

read_str=get_str(path)
read_list=read_str.split('\n')
save_excel(save_path,sheet_name,column_name_list,read_list)

批量删除重复文件:

import hashlib,os
def getMD5(filepath):
    f = open(filepath,'rb')
    md5obj = hashlib.md5()
    md5obj.update(f.read())
    hash = md5obj.hexdigest()
    f.close()
    return str(hash).upper()
path=input("请输入需要重复文件过滤文件夹路径:")
file_list = os.listdir(path)
file_md5=[]
for filename in file_list:
    md5val=getMD5(path+filename)
    if md5val in file_md5:
        os.remove(path+filename)
    else:
        file_md5.append(md5val)
print("处理完毕...")

批量英文翻译:

from translate import Translator
translator = Translator(to_lang="Chinese")
def get_str(path):
    f = open(path)  
    data = f.read()
    f.close()
    return data
path=input("请输入文件路径:")
text=get_str(path)

以上的代码是基础代码,相似需求的内容我就不贴出来了。
代码需要大家修改哟,代码很简单,看看就ok了。

三、python 爬虫

在这里插入图片描述
python 还可以去做一些爬虫方面的开发,例如你想要一些数据进行研究,可能你会使用 scrapy 之类的 python 爬虫框架,也可以使用 selenium 自动化测试框架做爬虫也是很方便。

专业用 scrapy 当然会更强大,但是 selenium 对于新手来说用起来也是非常棒的,可以忽略很多问题对网页信息进行提取。

但是需要注意,爬虫一定要合规使用哟。

四、python 机器学习、图像识别

请添加图片描述
python 做人工智能这一块也是非常方便,我记得我之前辅导一个情报学的同学做一个舆情分析系统,当时就是用了 python 制作,结合使用 sklearn 库,在可允许的误差中实现了这一套系统,这个还是非常棒的。

python 还可以通过 opencv 做图像识别,或者对图像进行模糊、加强等操作。我当时接触 opencv 是因为有一个平台说要征稿,一番计算之后发现学习成本和稿酬相比,稿酬比较诱人,接着我就接触了,就写了一些小东西,这个体验还是非常赞的。

五、python web方面

请添加图片描述
用 python 做 web 方面是一个较为常规的方向,python web 我接触的比较晚,因为之前做 web 我是使用的 php(为什么不用 java 是因为我年少时被 java 坑太惨了)。

我第一个接触的 python web 框架是 django。当时由于公司的一个项目是使用了 django 进行开发,我问开发(小农同学)这东西玩得怎么样,他跟我说“太简单了,直接就可以生成一个完整的项目。”!

我一听,心想这不就是跟那些 WordPress、discuz 一样吗?这还是 python?

于是为了搞懂 django,自己试了一下,果真 django 对开发一些项目及其方便。若使用 django 可以将其比喻成房子的地基(且软硬完全),再通过自己编写一“模块”为这个房子添加更多功能,在开发一些方向的 web 来说是非常方便的。

之后查了一下资料,发现了 Instagram 竟然就是 django 进行开发的。
在这里插入图片描述

六、画画

在这里插入图片描述
python 还可以通过代码画画,通过 turtle 画出很精美的作品。

turtle 是 python 的一个图像绘制库,我从资料上得知 turtle 是用来给青少年学习更好 python 的方式。我尝试了一下,确实很赞,下面就是我之前绘制出的一颗清新小树:
在这里插入图片描述
这里是我的代码,解释文章跳转:ttps://blog.csdn.net/A757291228/article/details/106029202:

from turtle import *
import random

def drawTree(length):
    if length>1:
        if length<30 and length>14:#缩小一下树干
            pensize(4)
        elif length<15 and length>5:#长度这个范围内那么就是绿叶
            color('#04B486')#
            pensize(3)
        elif length<5 and length>1:#红花
            color('#FE2E9A')
            pensize(2)
        else:
            color('#5E5E5E')#其他范围就是正常的树干
            pensize(5)
        #随机角度与长度
        randangle=2*random.random()
        randlen=2*random.random()
        
        #每次使用函数先绘制线段,再调整角度,这里是向右的角度转动
        fd(length)
        right(20*randangle)
        drawTree(length - 10*randlen)
        
        #这里是向左的角度转动
        left(40 * randangle)
        drawTree(length - 10*randlen)
        
        #为什么需要再向右转20度?那是因为我一共向左转了40度,使用backward后退,必须是相同的角度,不然退回去角度就不同了位置就不会对
        right(20 * randangle)

        up()
        backward(length)
        down()
def fallingFlowers(m):
    x,y=-1000,-750
    for i in range(30):
        up()
        goto(x,y)
        x+=100
        down()
        yval=50
        for i in range(m):
            a = 100*random.random()
            b = 2*random.random()
            print(a)
            if a>59:
                color('#FE2E9A')
            else:
                color('#04B486')
            circle(5)
            up()
            goto(x,y+(yval*b))
            fd(a)
            yval+=50
            down()      
            
setworldcoordinates(-1000,-750,1000,750)        
tracer(False)

fallingFlowers(10)#绘制落叶
bgcolor("#F5F6CE")
color('#5E5E5E')
pensize(5)

up()
goto(0,-700)#跳到绘制起始点
down()

left(80)
fd(140)
drawTree(120)

input()

点击全文阅读


本文链接:http://zhangshiyu.com/post/37091.html

批量  请输入  开发  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1