python自动化脚本 python代码自动生成器
各位老铁们,大家好,今天由我来为大家分享python自动化脚本,以及python代码自动生成器的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
常用Python脚本毕业生必看
你每天都会用到的Python自动化脚本5个Python自动化脚本
1、网址缩短器
import py shorten ers
s=py shorten ers.Short ener(api_key="YOUR_KEY")
long_url=input("Enter the URL to shorten:“)
short_url=s.bit ly.short(long_url)
print("The shortened URL is:"+short_url)
在URL缩短方面, Py shorten ers库是我最喜欢的库之一,可用于各种项目。大多数链接缩短器都需要一个API密钥,但除非您预计会有数十万个请求,否则它们通常是免费的。我发现像Bit.ly, Adf.ly和Tinyurl这样的API非常适合SaaS应用程序和Telegram机器人。
2、创建伪信息
import pandas a spd from faker import Faker
#Createobject fake=Faker()
#Generatedata fake.name()
fake.text()
fake.address()fake.email()
fake.date()
fake.country()fake.phone_number()
fake.random_number(digits=5)
#Dato frame creo tion fake Data frame=pd.Data Frame({‘date':[fake.date() for i in range(5) ],‘name’:[fake.name() for i in range(5) ],femail':[fake.email() for i in range(5) ],“text':[fake.text() for i in range(5) ]})print(fake Data frame)
如果您需要创建一个假人(伪造的角色),这个伪造者库为您提供了一个伪造者类,可以自动生成整个假人。此脚本创建几个不同的人并将他们存储在数据Frame中,这是一个稍微复杂的概念。如果我不得不向不太信任的网站提供信息,或者如果我不想其他人追溯到我的任何信息,我会使用这些假人信息。
3、优酷视频下载器
from py tube import YouTube
link=input("Enter a youtube video's URL")#i.e,https://youtu.be/dQw4w9llgXcQ
yt=Youtube(link)
yt.streams.first().download()
print("downloaded", link)
很简单。它使用py tube库将您提供的任何链接转换为文件,然后下载它。使用五行代码且没有API速率限制,您可以将其与另一个脚本结合使用来转录视频并使用情绪分析来确定视频包含的内容类型。
4、社交媒体登录自动化
from selenium import web driver
driver=web driver.Firefox()
driver.get(“https://www.facebook.com/")
#Find the email or phone field and enter the email or phone number email_field=driver.find_element_by_id(“email”)email_field.send_keys(“your_email_or_phone”)
#Find the password field and enter the password password_field=driver.find_element(“pass")password_field.send_keys(“your_password”)
#Find the login button and click it
login_button=driver.find_element_by_id(“login button”)login_button.click()
此代码利用Selenium,一个流行的Web自动化库。它打开一个Web浏览器,并根据代码中给出的各种命令进行导航。在这个特定的代码块中,浏览器将跳转到Facebook,并在网页上找到要修改的特定元素。在这里,我们在电子邮件和密码字段中输入某些字符,然后单击"登录"按钮。如果提供了有效的凭据,这将自动登录用户。
5、北约音标加密器
def encrypt_message(message):
nato_alphabet={
‘A':‘Alfa',‘B':‘Bravo’,‘C':f Charlie',‘D':‘Delta',
“E':“Echo',“F':“Foxtrot’,“G':“Golf,“H:Hotel',
“I':“India',勺':“Juliet’,“K”:“Kilo”,‘L”:“Lima',
“M:“Mike','NP:November',“0’;“Oscar',“P':‘Papa',
“Q':“Quebec',“R':Romeo’,‘S':“Sierra', T':“Tango’,
UP:“Uniform',‘V”:‘Victor',“W:whiskey’,‘X:“Xray',
‘Y':f Yankee’,‘Z’:“Zulu’
encrypted_message w
#Iterate through each Letter in the message
for letter in message:
#I the Letter is in the diction or y, add the corresponding codeword to the encrypted messag
if letter.upper() in nato_alphabet:
encrypted_message+=nato_alphabet[letter.upper() ]+“n
#I the Letter is not in the dictionary, add the original Letter to the encrypted message
else:
encrypted_message+=letter
return encrypted_message
message="HelloWorld"
encrypted_message=encrypt_message(message)
print("Encrypted message:", encrypted_message)
PYTHON怎样编写自动化
就直接写脚本,给你举给例子:
编写工具:
1.设计目标:
首先说一下我要工具的功能:
遍历某个目录下包括其下子目录中所有指定的后缀文件,然后为这些文件的头部插入指定的字符串。
2.使用场景:
设计这样的工具起因是我最近在将之前 CSDN中的博客搬运到自己的 Hexo博客空间上,了解的应该知道,假如都是 Markdown编写的话,搬运的时候只需要在文件头部加上如下的一串额外的内容:
---
title:博客标题
date:博客创建时间(例如:2016-09-03 17:15:22)
tags:标签(如:[Hexo,Next],多个的话用,号隔开)
categories:分类(如:Web)
---123456
标题title直接使用文件名称去掉.md后缀即可;
时间date需要通过文件库获取文件的创建时间;
标签tags和分类categories,由于我的文件会根据分类放入不同的子目录下,所以直接获取当前文件所在目录的名称即可。
此外,为了在博客首页只展示部分内容,而不是展开博客的完整内容,还需要在博客中恰当的位置插入这个标签:<!--more-->,通常加载第一段内容结束的位置。
3.实现代码:
根据上面的思路,我们在source/_posts目录下创建一个工具脚本,起名为SuitFileToHexo.py,然后依次完成以下步骤:
指定 Linux环境下 Python解释器目录,并指定编码方式:
#!/usr/bin/env python#-*- coding: utf-8-*-
引入的模块:
在脚本开始的地方,最先需要做的事情就是把需要用到的模块都先引入进来,大致分析一下我们这个功能需要用到的模块:
import os.path,time
1
遍历当前目录下所有.md文件列表:
这就需要使用到 Python的文件目录操作模块os.path,使用os.listdir获取目录列表,然后通过os.path.splitext分割文件名称和后缀名,从而筛选合格的文件:
#获取指定目录指定后缀名的文件列表def getFileList(path,endStr):'''获取指定目录下,指定后缀的文件列表'''r_list= []
f_list= os.listdir(path)#获取目录列表for i in f_list:#分离文件名和后缀名,过滤掉工具脚本
file_endStr= os.path.splitext(i)[1]#判断是否是目录
if os.path.isdir(i):
f_list1= os.listdir(path+'/'+i) for j in f_list1:#过滤出指定后缀 endStr后缀的文件
if os.path.splitext(j)[1]== endStr:#为了清晰目录把文件所在目录也标识出来
r_list.append(i+'/'+j)# print j.decode("string_escape")
elif file_endStr== endStr:
r_list.append(i)return r_list
这里发现了一个问题,就是在os.path.isdir(i)在 2.7.11的版本莫名其妙地返回 false,需要做如下修改才能正常:
if file_endStr=='':
i= os.path.join(path, i)#=================〉这一行很必要
# print i
#判断是否是目录
if os.path.isdir(i):
...
获取文件的创建时间:
需要使用到os.time模块的功能:
#获取文件创建时间def get_FileCreateTime(filePath):
t= os.path.getctime(filePath) return TimeStampToTime(t)#把时间戳转化为时间: 1479264792 to 2016-11-16 10:53:12'''def TimeStampToTime(timestamp):
timeStruct= time.localtime(timestamp) return time.strftime('%Y-%m-%d%H:%M:%S',timeStruct)
获取博客
其实就是从目录字符串中截掉后缀名,再截掉最后一个/之前的内容即可得到博客名称:
#获取目录中去掉前面路径和后缀的文件名字def getFileSimpleName(filePath):
name=''
#先去掉后缀
name= os.path.splitext(filePath)[0]#获取最后一个斜杠位置
index= name.rfind('/')#找不到则返回-1
if index!=-1:#截取斜杠后面到结尾内容
name= name[index+1:]# print name
return name
获取文件所在的目录名称作为页签值:
与获取博客名称思路略有相似,获取最后一个斜杠位置,截掉斜杠之后的内容,在获取一个最后一个斜杠位置,假如有则截取斜杠之后的内容即是文件所在目录的名称:
#获得分类文件目录名称def getTypeNameByPath(filePath):fileTag=''#获取最后一个斜杠位置index= filePath.rfind('/')#找不到则返回-1if index!=-1:#截取斜杠后面到结尾内容
fileTag= filePath[:index]#截掉前面部分
index= fileTag.rfind('/') if index!=-1:
fileTag= fileTag[index+1:]# print fileTagreturn fileTag
向文件中插入内容:
调用以上方法即可分别得到我们想要的信息:
#指定目录path='./'#得到文件列表files= getFileList(path,'.md')
for i in files: print'title:'+getFileSimpleName((i.decode("string_escape"))) print'date:'+get_FileCreateTime((path+i.decode("string_escape"))) print'tags: ['+getTypeNameByPath((i.decode("string_escape")))+']'
接下来要做的就是把这些内容按照格式插入到文件中去,当然插入之前需要先检查文件中是否已经插入过类似的内容了,可以简单地通过检查开头 40个字符串中是否包含这个字符串来判别:
'''---
title:'''
关于展示分隔符<!--more-->插入的位置,大致逻辑是:第一个标题后面,而且刚好插入在第二个标题之前即可,而使用 Markdown语法撰写的博客标题使用#来表示的,最终的插入方法如下:
#向文件中插入指定数据def addHeadToFile(filePath,title,date,tags):file= open(filePath,"r")
content= file.read()
index= content[:40].find('''---
title:''')#添加if index==-1: print'Undadded'
addContent='''---
title:'''+title+'''
date:'''+date+'''
tags: ['''+tags+''']
categories:'''+tags+'''
<hr/>
'''
#检测是否插入部分显示标签
content= addContent+ content
index= content.find('''<!--more-->''') if index==-1:#获取第一段的位置
index= content.find('''###''') if index!=-1:#print"first### pos=",index
#下一个标题位置(在第二个标题之前插入即可)
pos= content[index:].find('''
#''',1) if pos!=-1:
index+= pos#print"second enter pos=",index
content= content[:index]+'''
<!--more-->
'''+content[index:]
file= open(filePath,"w")
file.write(content)else:#print'file head had added'#记得要关闭文件file.close()
最后完整的调用过程:
#指定目录path='./'#得到文件列表files= getFileList(path,'.md')
#声明一些全局变量title=''date=''tags=''for i in files:
title= getFileSimpleName(i.decode("string_escape"))
date= get_FileCreateTime(path+i.decode("string_escape"))
tags= getTypeNameByPath(i.decode("string_escape")) print'title:'+title print'date:'+date print'tags: ['+tags+']'
addHeadToFile(path+i.decode("string_escape"),title,date,tags)
如何做好python自动化运维
随着移动互联网的普及,服务器运维所面临的挑战也随之越来越大。当规模增长到一定程度,手动管理方式已经无法应对,自动化运维成为解决问题的银弹。Python凭借其灵活性,在自动化运维方面已经被广泛使用,能够大大提高运维效率,服务器集群的规模越大,优势越明显。现在不论是Linux运维工程师还是Unix运维工程师都需要掌握Python,以提高运维效率。
第一个阶段:初级,掌握Python的语法和一些常用库的使用
掌握一门语言最好的方法就是用它,所以我觉得边学语法边刷Leetcode是掌握Python最快的方式之一。
很多只需要将Python作为脚本或者就是写一些小程序处理处理文本的话,到这一个阶段就足够了,这个阶段已经可以帮我们完成很多很多的事情了。但是如果是一个专业学习Python的,恐怕还需要努力的升级:首先,国内的大多数人都是学习了其他语言(C,C++,Java等)之后来学习Python的,所以Python和这些语言的不同,也就是pythonic的东西需要一些时间去学习了解和掌握;另外,对于自己领域的领域的库构架的掌握也需要很长的时间去掌握;最后,如果想独立完成一个Python的项目,项目的布局,发布,开源等都是需要考虑的问题。
第二个阶段:中级,掌握自己特定领域的库,掌握pythonic写法,非常熟悉Python的特性
推荐的第一本书是《编写高质量代码–改善python程序的91个建议》,这本书大概的提了下Python工程的文件布局,更多的总结了如何写出pythonic的代码,另外,也介绍了一些常用的库。
这里首先推荐在腾讯官方课程渠道上进行直播学习,有号就能无偿一直学,每天晚上都是高清直播(企鹅球球:1129中间是834最后加上这个903连在一起就能够了),除此之外基于python2.7在网上的书籍适合于重头开始一直读完,作为一个开发人员,除了基本的语法,这本书里面提到了一些其他的常用的库,看了廖老师写的很多东西,感觉他的思路,以及写博客写书的高度,概括性,原理性都十分好,这本书读完之后,相信就能够动手写很多东西了,能够尽情的玩转Python解说器了。
要想深入的了解Python,有的时候看看Python的源码也是很重要的,自己通过读懂源码,来彻底的了解Python的核心机制,这里推荐《Python源码剖析——深度探索动态语言核心技术》,这本书并没有看完,只是在需要深入了解Python某个功能或者数据结构的时候看看相关章节,也觉得受益匪浅。
自己领域的书籍和资料也肯定很多,比如web开发的构架都有很多,只有了解熟悉了所有构架,在选择的时候才能衡量利弊,然后深入掌握某些构架。
关于python自动化脚本的内容到此结束,希望对大家有所帮助。