当我在Windows webbrowser.open(fname)、os.startfile(fname)或os.system ('cmd /c "start %s"' % fname)上试用时,我的python脚本就会被执行。
如何在默认编辑器中打开它以进行编辑(如SQL脚本)
编辑:
import ctypes
shell32 = ctypes.windll.shell32
fname = r'C:\Scripts\delete_records.py'
shell32.ShellExecuteA(0,"open",fname,0,0,5)它在C:\Program Files\ibm\gsk8\lib64\C上打开文件资源管理器
发布于 2015-03-16 20:41:44
默认的打开和编辑操作由ShellExecute WinAPI函数处理(操作在HKEY_CLASSES_ROOT子树的注册表中定义)。
有几种方法可以从访问WinAPI。
若要检查所需文件类型支持哪些操作,请执行以下操作:
regedit.exeHKEY_CLASSES_ROOT并选择所需的扩展,即.py。读取左窗格上的(Default)值--它将是类名,即Python.File。HKEY_CLASSES_ROOT中打开类名子树。它应该包含shell子树,在它下面可以找到可用的shell操作。对于我和Python来说,它们是Edit with IDLE和Edit with Pythonwin。ShellExecute()的第二个参数传递发布于 2015-03-16 20:24:44
"""
Open the current file in the default editor
"""
import os
import subprocess
DEFAULT_EDITOR = '/usr/bin/vi' # backup, if not defined in environment vars
path = os.path.abspath(os.path.expanduser(__file__))
editor = os.environ.get('EDITOR', DEFAULT_EDITOR)
subprocess.call([editor, path])发布于 2022-11-20 20:40:42
根据os.startfile的文档,您可以定义要执行的操作。所以os.startfile(fname,operation='edit')应该为你想要的而工作。另见这个答案。
https://stackoverflow.com/questions/29086063
复制相似问题