大佬教程收集整理的这篇文章主要介绍了我用python自制hosts修改神器,组长说你他娘的还真是个天才(附源码),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
❤️欢迎订阅《从实战学python》专栏c;用python实现爬虫、办公自动化、数据可视化、人工智能等各个方向的实战案例c;有趣又有用!❤️
更多精品专栏简介点这里
相信使用Windows
的小伙伴在工作中遇到需要频繁hosts
时都非常苦恼。主要有这几个原因:
Windows
的hosts
文件位于C:WindowsSystem32driversetchosts
目录下c;不是很好记。针对以上痛点c;一条自制了一款修改神器c;2秒内切换/修改完hosts
c;可不要小看这两秒c;效率是第一生产力c;另外这可是个装x神器。
文末有C站内测投票可体验
目前主要实现了三个功能c;使用方法为win + R 打开命令行窗口c;输入文件名(h.py)c;回车c;键盘输入对应功能的数字。
神器的核心部分c;查了一下资料c;万能的python果然有能够以管理员权限执行脚本的神器。
就是他——
ctypes
主要代码就是这句:
ctypes.windll.sHell32.SHellExecuteW(None, "runas", sys.executable, __file__, None, 1)
其中有一个参数为__file__
c;这句代码是获取管理员权限然后重新执行该文件。这个系统命令并不是主程序完成的c;而是以管理员身份重新开了一个进程执行系统命令。并有一个自己的控制台。
主要代码
def show():
lineNum = 1
with open("C:WindowsSystem32driversetchosts", "r") as f:
linesList = f.readlines()
for i in linesList:
print(str(lineNum) + " " + i, end="")
lineNum = lineNum + 1
input("please press enter exit")
先执行查看c;然后输入对用的行号c;判断每行开头字符是否是
#
c;是去掉c;不是在开头加上。实现注释/非注释的切换。
主要代码
def edit():
lineNum=1
with open("C:WindowsSystem32driversetchosts", "r") as f:
linesList=f.readlines()
for i in linesList:
print(str(lineNum)+" "+i,end="")
lineNum =lineNum+1
linenumber=int(input("please enter linenumber:"))
if(linesList[linenumber-1].startswith("#")):
linesList[linenumber-1]=linesList[linenumber-1].replace("#","",1)
else:
linesList[linenumber-1]="#"+linesList[linenumber-1]
with open("C:WindowsSystem32driversetchosts", "a+") as f:
f.truncate(0)
f.writelines(linesList)
主要代码
def add(addStr):
with open("C:WindowsSystem32driversetchosts", "a+") as f:
f.write(addStr+"n")
print(addStr+"thava add")
input("please press enter exit")
为了速度达到最快c;采用win+R的方式打开c;这样即使你在处理复杂的事情c;也不用回到桌面c;不用打开文件c;一触即达!
h.py
文件C:WindowsSystem32
目录下h.py
即可打开#pip install name 安装
import ctypes, sys
def is_admin():
try:
return ctypes.windll.sHell32.IsUserAnAdmin()
except:
return false
def add(addStr):
with open("C:WindowsSystem32driversetchosts", "a+") as f:
f.write(addStr+"n")
print(addStr+"thava add")
input("please press enter exit")
def edit():
lineNum=1
with open("C:WindowsSystem32driversetchosts", "r") as f:
linesList=f.readlines()
for i in linesList:
print(str(lineNum)+" "+i,end="")
lineNum =lineNum+1
linenumber=int(input("please enter linenumber:"))
if(linesList[linenumber-1].startswith("#")):
linesList[linenumber-1]=linesList[linenumber-1].replace("#","",1)
else:
linesList[linenumber-1]="#"+linesList[linenumber-1]
with open("C:WindowsSystem32driversetchosts", "a+") as f:
f.truncate(0)
f.writelines(linesList)
input("please press enter exit")
def show():
lineNum = 1
with open("C:WindowsSystem32driversetchosts", "r") as f:
linesList = f.readlines()
for i in linesList:
print(str(lineNum) + " " + i, end="")
lineNum = lineNum + 1
input("please press enter exit")
if __name__ == '__main__':
if is_admin():
print("hosts编辑器nAuthor:一条codingnData:2021-08-21nVersion:0.0.1")
operateType = input("查看hosts:1n编辑hosts:2n新增hosts:3")
if (operateType == "1"):
show()
if (operateType == "2"):
edit()
if (operateType == "3"):
addStr=input("please type your content:")
add(addStr)
else:
ctypes.windll.sHell32.SHellExecuteW(None, "runas", sys.executable, __file__, None, 1)
⭐今天是坚持刷题更文的第36/100天
⭐各位的点赞、关注、收藏、评论、订阅就是一条创作的最大动力
为了回馈各位粉丝c;礼尚往来c;给大家准备了一条多年积累下来的优质资源c;包括 学习视频、面试资料、珍藏电子书等
大家可以评论留言或者私信我领取
以上是大佬教程为你收集整理的我用python自制hosts修改神器,组长说你他娘的还真是个天才(附源码)全部内容,希望文章能够帮你解决我用python自制hosts修改神器,组长说你他娘的还真是个天才(附源码)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。