今天记录一下Python3.9标准库sys与webbrowser以及基于它俩做一个自动化脚本,实现我自己平时想懒一下的需求:打开电脑以后如果我打算编程,需要打开非常多网页进行浏览,因此萌生了想一键打开每天基本都会使用的网站,例如Github、StackOverflow、Python官方文档、Bilibili、MDN、Flask中文文档以及我自己的个人网站(但是不知道为什么,前几天突然网站就崩了......),并且支持命令式进行交互,支持增删改查,支持命令式打开网站(吐槽:其实在浏览器固定这些网站就行,但是本着锻炼自己的目的嘿嘿嘿)。
1.Python sys --- 系统相关的参数和函数
# python sys --- 系统相关的参数和函数
import sys
# 常用的参数与函数
cmd = sys.argv # 返回一个参数列表
print(cmd) # 如果直接点击运行此脚本, 返回此脚本的绝对路径.
"""
如果在命令行输入python 1.sys.py willaddcmd, 则返回['1.sys.py', 'willaddcmd'], argv[0]是脚本名.
如果是通过 Python 解释器的命令行参数 -c 来执行的, argv[0] 会被设置成字符串 '-c'.
"""
prefix = sys.prefix # 当前项目虚拟环境路径
print(prefix)
base_exec_prefix = sys.base_exec_prefix # python解释器的绝对路径
print(base_exec_prefix)
base_prefix = sys.base_prefix # python解释器的绝对路径
print(base_prefix)
exec_prefix = sys.exec_prefix # 当前项目虚拟环境路径
print(exec_prefix)
"""
如果 site.py 发现处于一个虚拟环境中, prefix 和 exec_prefix 将会指向虚拟环境。
然而 base_prefix 和 base_exec_prefix 将仍然会指向基础的 Python 环境(用来创建虚拟环境的 Python 环境)
如果不是运行在一个虚拟环境中,那么便全都指向python解释器的原路径。
注:此脚本就在'A:\Python_Projects\Python_Lirary\venv'路径的虚拟环境下
"""
builtin_module_names = sys.builtin_module_names # 此属性包含所有python解释器的标准库模块
print(builtin_module_names)
copyright = sys.copyright # 一个字符串,包含了 Python 解释器有关的版权信息
print(copyright)
getwindowsversion = sys.getwindowsversion()
print(getwindowsversion)
maxsize = sys.maxsize # 一个整数,表示 Py_ssize_t 类型的变量可以取到的最大值。
print(maxsize)
path = sys.path # 一个由字符串组成的列表,用于指定模块的搜索路径。
print(path)
platform = sys.platform # 返回你的机器平台
print(platform)
version = sys.version
"""
一个包含 Python 解释器版本号加编译版本号以及所用编译器等额外信息的字符串。
此字符串会在交互式解释器启动时显示。请不要从中提取版本信息,而应当使用 version_info 以及 platform 模块所提供的函数。
"""
"""
可选参数 arg 可以是表示退出状态的整数(默认为 0),也可以是其他类型的对象。
如果它是整数,则 shell 等将 0 视为“成功终止”,非零值视为“异常终止”。大多数系统要求该值的范围是 0--127,否则会产生不确定的结果。
某些系统为退出代码约定了特定的含义,但通常尚不完善;Unix 程序通常用 2 表示命令行语法错误,用 1 表示所有其他类型的错误。
传入其他类型的对象,如果传入 None 等同于传入 0,如果传入其他对象则将其打印至 stderr,且退出代码为 1。
特别地,sys.exit("some error message") 可以在发生错误时快速退出程序。
"""
sys.exit("happen some errors") # 参数设置为字符串可以来提示程序可能的退出情况
2.webbroswer --- 方便的web浏览器控制器
# webbrowser --- 方便的Web浏览器控制器
import webbrowser
"""
首先webbrowser可以通过命令行直接进行使用:
python -m webbrowser -t "https://cn.bing.com" 在新的浏览器页面(“标签”)中打开 URL
python -m webbrowser -n "https://cn.bing.com" 在新的浏览器窗口中打开 URL
"""
# 此模块最主要的函数, 其他函数见https://docs.python.org/zh-cn/3.9/library/webbrowser.html
webbrowser.open(url="https://cn.bing.com", new=0, autoraise=True)
"""
使用默认浏览器显示 url。如果 new 为 0,则尽可能在同一浏览器窗口中打开 url。
如果 new 为 1,则尽可能打开新的浏览器窗口。如果 new 为 2,则尽可能打开新的浏览器页面(“标签”)。
如果 autoraise 为 “True”,则会尽可能置前窗口(请注意,在许多窗口管理器下,无论此变量的设置如何,都会置前窗口)。
"""
3.通过上面的两个库即可完成前文提出的需求,代码如下
import sys
import webbrowser
"""
作者:回到古代见李白
创建时间:2022.07.16 15:39
创建目的:每次开机后可以通过输入命令快速打开需要浏览的web页面
核心库:本脚本核心库为webbrowser
使用方式:通过命令行切换到脚本目录并输入相应命令来运行脚本
python 3.quick_start.py 快速打开相应页面
python 3.quick_start.py -o url 自定义打开相应url页面
"""
def extra():
return "\n您可能需要帮助:\n一般模式:python 3.quick_start.py" \
"\n自定义模式:python 3.quick_start.py -o url\n"
def diy_open():
url = input("请输入要打开的网址:")
webbrowser.open_new_tab(url)
return "{}:打开成功".format(url)
class QuickStart:
def __init__(self, parm1, parm2):
self.argv = parm1
self.quick_start_urls = parm2
def quick_open(self):
bool_lis = [webbrowser.open_new_tab(self.quick_start_urls[key])
for key in quick_start_urls]
if all(bool_lis):
for key in quick_start_urls:
print("{}: Success!".format(key))
else:
count = 0
for b in bool_lis:
if b is False:
keys = quick_start_urls.keys()
current_false_key = list(keys)[count]
print("{0}打开失败, 请手动打开{0}: {1}"
.format(current_false_key, quick_start_urls[current_false_key]))
count += 1
if __name__ == "__main__":
# 获得命令行参数列表
argv = sys.argv
# 需打开的默认web页面
quick_start_urls = {"个人网站": "http://codechangeworld.cn/",
"Python_Doc": "https://docs.python.org/zh-cn/3.7/",
"Python_Library": "https://docs.python.org/zh-cn/3.7/library/index.html",
"Python HowTo": "https://docs.python.org/zh-cn/3.7/howto/index.html",
"MDN": "https://developer.mozilla.org/zh-CN/",
"Flask": "https://dormousehole.readthedocs.io/en/latest/index.html",
"StackOverFlow": "https://stackoverflow.com/",
"Bing": "https://cn.bing.com/?mkt=zh-CN", }
# 实例化quick_start
quick_start = QuickStart(argv, quick_start_urls)
# 如果输入参数为: python 3.quick_start.py 则打开默认web页面
if len(argv) == 1:
if argv[0] == "3.quick_start.py":
quick_start.quick_open()
else:
print("\n您可能需要帮助:")
print("一般模式:python 3.quick_start.py" + "\n"
"自定义模式:python 3.quick_start.py -o url\n")
# 如果输入参数为: python 3.quick_start.py -o url 则自定义打开页面
elif len(argv) == 3:
if argv[1] == "-o" and argv[2] == "url":
end = diy_open()
print(end)
else:
warn = extra()
print(warn)
上述代码完成了基本的打开提前设置好的网站以及自定义打开网页,更完善的实现被我写成了一个小项目,不好发在这里。如下。
最后就是上传GitHub,发布成一个库,给自己用。这样子以后打开电脑如果想编程只需要打开Pycharm以及输入命令一键打开我所需要的web页面。然后就可以去打游戏了哈哈哈哈哈哈。
文章评论