用于在崇高文本

时间:2016-05-17 23:38:41

标签: python xcode sublimetext2 lldb

上下文

我正在修改一个小的python脚本,因此我从Xcode调试器运行的lldb命令的输出将输出到一个文件并以升华文本打开。

import lldb
import os
import subprocess

def print_to_file(debugger, command, result, dict):
  #Change the output file to a path/name of your choice
  f=open("/Users/venkat13/pcomponents.txt","w")
  debugger.SetOutputFileHandle(f,True);
  debugger.HandleCommand(command)
  path = "/Users/venkat13/pcomponents.txt"
  sublimePath = '/Applications/Sublime\ Text.app'
  subprocess.Popen("%s %s" % (sublimePath, path))


def __lldb_init_module (debugger, dict):
  debugger.HandleCommand('command script add -f po.print_to_file print_to_file ')

问题:

上面的脚本正在生成文件,但它不会以崇高的文本打开。我哪里错了?

1 个答案:

答案 0 :(得分:0)

那是因为Popen不会直接将整个字符串传递给shell,除非你指定shell=True(在我看来,你希望命令的工作方式与你通常在壳)。

改为使用:

subprocess.Popen([sublimePath, path])

或者,( NOT RECOMMENDED ):

subprocess.Popen("%s %s" % (sublimePath, path), shell=True)