使用Python的操作系统默认操作打开URL

时间:2012-11-03 23:50:13

标签: python windows steam

我正在编辑一个名为TF2idle的程序,可以在这里看到: http://facepunch.com/showthread.php?t=1161862

我添加了一个按钮来整理使用他所拥有的人员来源选择的任何帐户。

我在python文件中发现这是所有魔法发生的地方,也是我需要编辑以添加我的碎片整理按钮。

http://pastebin.com/9PjzqU5u

第136-142行和第328-337行我自己补充说。这些行如下:

startDefragIcon = QtGui.QIcon()
            startDefragIcon.addPixmap(QtGui.QPixmap(returnResourcePath('images/defrag.png')), QtGui.QIcon.Normal, QtGui.QIcon.Off)
            self.startDefragAction = self.mainwindow.htoolBar.addAction(startDefragIcon, 'Defrag Accounts')
            QtCore.QObject.connect(self.startDefragAction, QtCore.SIGNAL('triggered()'), curry(self.startUpAccounts, action='start_Defrag'))

 if action == 'start_Defrag':
                                    command = r'"%s/Steam.exe" -login %s %s' % (sandbox_install, username, password)
                                    if easy_sandbox_mode == 'yes' and self.settings.get_option('Account-' + account, 'sandbox_install') == '':
                                            self.commandthread.addSandbox('TF2Idle' + username)
                                            self.createdSandboxes.append(username)
                                            command = r'"%s/Start.exe" /box:%s %s' % (sandboxielocation, 'TF2Idle' + username, command)
                                    else:
                                            command = r'"%s/Start.exe" /box:%s %s' % (sandboxielocation, sandboxname, command)
                                    #Right here add script to launch steam://defrag/440

程序可以对帐户进行碎片整理的方法是启动" steam:// defrag / 440"这将自动完成。举个例子,我可以放入我的谷歌浏览器地址栏中的地址,它会告诉蒸汽用ID 440碎片整理程序,这就是TF2。

事情是,我不知道如何将其添加到脚本中。我正在考虑添加一个BAT文件,该文件将包含" steam:// defrag / 440"在其中并添加一行以在336行启动所述BAT文件。

我希望有人知道如何实现这一目标。

第二个问题是,在完成编辑成.EXE后,我不知道如何打开所有这些源文件。我知道这对我来说都是先进的,但是如果我想上大学的计算机科学,我必须开始学习,这对于许多使用这个工具的用户来说真的很有帮助。

3 个答案:

答案 0 :(得分:3)

我怀疑你想要webbrowser module

import webbrowser
webbrowser.open_new('steam://defrag/440')

答案 1 :(得分:1)

如果你想做的就是对该地址的请求,python提供了简单的模块来处理它。

from httplib2 import Http
h = Http
h.request('steam://defrag/440', 'GET')

答案 2 :(得分:1)

这可能不符合答案本身,但由于您的问题确实不符合问题(:-P),这里有一些提示:

  • Steam客户端将自身注册为steam://协议的URL处理程序。
  • 您应该能够使用webbrowser模块实现您提议的工作流程。
  • 您可以在BAT文件中执行任何操作,您可以使用Python脚本执行此操作。
  • 通常,不编译Python脚本(例如,编译为.exe文件)。也就是说, py2exe,它将解释器,代码和依赖项包装到.exe文件包中。

编辑:请参阅Eric关于最后一点的问题的评论。