Python3.9标准库sys和webbrowser

2022年7月26日 292点热度 0人点赞 0条评论

今天记录一下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" 在新的浏览器页面(“标签”)中打开 URLpython -m webbrowser -n "https://cn.bing.com" 在新的浏览器窗口中打开 URL"""
# 此模块最主要的函数, 其他函数见https://docs.python.org/zh-cn/3.9/library/webbrowser.htmlwebbrowser.open(url="https://cn.bing.com", new=0, autoraise=True)"""使用默认浏览器显示 url。如果 new 为 0,则尽可能在同一浏览器窗口中打开 url。如果 new 为 1,则尽可能打开新的浏览器窗口。如果 new 为 2,则尽可能打开新的浏览器页面(“标签”)。如果 autoraise 为 “True”,则会尽可能置前窗口(请注意,在许多窗口管理器下,无论此变量的设置如何,都会置前窗口)。"""

3.通过上面的两个库即可完成前文提出的需求,代码如下

import sysimport 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页面。然后就可以去打游戏了哈哈哈哈哈哈。

55020Python3.9标准库sys和webbrowser

这个人很懒,什么都没留下

文章评论