在剪贴板上打开谷歌地图位置的Python脚本
任务是创建一个Python脚本,该脚本将打开默认 Web 浏览器以访问作为命令行参数给出的地址的 Google 地图。
以下是分步过程:
- 从命令行输入创建地址字符串:命令行参数可以通过 sys 模块读取。 sys.argv 数组的第一个元素作为文件名,其余元素作为命令行参数,它们通过空格分成不同的元素,与 raw_input().split() 相同。因此,如果 sys.argv 的长度大于 1,那么我们可以确定命令行参数已经传递。
由于 sys.argv 是一个字符串列表,因此可以将其传递给 join() 方法,该方法返回单个字符串值。由于第一个元素是不需要的文件名,因此我们可以对列表进行切片并从第二个元素开始连接。#File name is Map.py import sys print ' '.join(sys.argv[1:])
If we run >>> python Map.py New Delhi The output of the program would be New Delhi.
- 打开网络浏览器:我们将使用网络浏览器模块来打开浏览器。 webbrowser 模块有一个方法open()可以将 web 浏览器启动到指定的 URL。例如,下面给出的脚本将打开网络浏览器到 GeeksforGeeks 的主页。
import webbrowser webbrowser.open('https://www.geeksforgeeks.org/')
- 找到网址:现在,当我们去谷歌地图搜索谷歌地图时,发现网址是乱码,没有清晰的模式,如下图所示。
https://www.google.co.in/maps/place/GeeksforGeeks/@28.5011226,77.4077907,17z/data=!3m1!4b1!4m5!3m4!1s0x390ce626851f7009:0x621185133cfd1ad1!8m2!3d28.5011226!4d779 hl=en网站通常会在 URL 中添加额外的文本,以完成定制和跟踪等额外任务。但是,可以观察到 URL 的前几部分是https://www.google.co.in/maps/place/GeeksforGeeks ,其中 GeeksforGeeks 是我们搜索的关键字。
另外,例如,在搜索 New Delhi 而不是 New + Delhi 时,如果我们只写 New Delhi,+ 会自行插入所需的位置,这进一步简化了我们的任务。
因此,最终 URL 可以被视为https://www.google.co.in/maps/place/ Address_String / 。 - 结合两者并完成脚本:下面给出了打开给定命令行地址的Python脚本。将有两个导入模块, webbrowser用于打开浏览器到指定的 URL, sys用于处理命令行参数。
- 第一步是检查是否有任何命令行,这是使用 len(sys.argv) 完成的。
- 然后我们使用 join 方法形成要在 Google Maps 中搜索的地点的地址字符串。
- 最后,当我们得到地址时,我们使用 webbrowser 模块的 open() 方法打开浏览器到地址 URL。
该程序通过 CMD(windows) 或终端(Linux) 运行,格式如下:
>>> python [File Name] [Address to be searched] For eg. >>> python Map.py GeeksforGeeks
# File Name -- Map.py import sys, webbrowser if len(sys.argv) > 1: # Argument passed map_string = ' '.join(sys.argv[1:]) webbrowser.open('https://www.google.com/maps/place/' + map_string) else: print "Pass the string as command line argument, Try Again"
>>> python Map.py SeeksforGeeks The above command will open map of GeeksforGeeks in the web browser.