📜  在剪贴板上打开谷歌地图位置的Python脚本

📅  最后修改于: 2022-05-13 01:55:25.918000             🧑  作者: Mango

在剪贴板上打开谷歌地图位置的Python脚本

任务是创建一个Python脚本,该脚本将打开默认 Web 浏览器以访问作为命令行参数给出的地址的 Google 地图。

以下是分步过程:

  1. 从命令行输入创建地址字符串:命令行参数可以通过 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.
  2. 打开网络浏览器:我们将使用网络浏览器模块来打开浏览器。 webbrowser 模块有一个方法open()可以将 web 浏览器启动到指定的 URL。例如,下面给出的脚本将打开网络浏览器到 GeeksforGeeks 的主页。
    import webbrowser
    webbrowser.open('https://www.geeksforgeeks.org/')
    
  3. 找到网址:现在,当我们去谷歌地图搜索谷歌地图时,发现网址是乱码,没有清晰的模式,如下图所示。
    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 /

  4. 结合两者并完成脚本:下面给出了打开给定命令行地址的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.