有没有办法 return bzr 函数 (log.show_log) 自动输出为脚本,这样我就可以 re.search 通过它?
Is there a way to return the bzr function (log.show_log) output as a script automatically so I can re.search through it?
通常在 bzrlib 中可能有一个更好的模块,但我没能找到它。我希望能够 return bzrlib 函数的输出:log.show_log()
作为脚本,这样我就可以使用 python re.search
函数在其中查找特定信息日志的人类可读版本。
我曾尝试使用简单的 str()
函数,但没有成功。我只收到 NONE 作为我的反馈。
这是我的代码:
parser = argparse.ArgumentParser()
parser.add_argument('-r', '--revnum', type=int, metavar='', required=True, help='Baseline revision number')
parser.add_argument('-d', '--directory',type=str, metavar='',required=True,help='Directory that repository in question is located')
args = parser.parse_args()
r1= args.revnum
d1= args.directory
print ''
print 'Directory containing repository: '+ (d1)
print ''
print ("Input revision number: %s" %(r1))
print ''
b = Branch.open (d1)
lf = log.LongLogFormatter(to_file=sys.stdout, levels=0)
h = log.show_log(b, lf, verbose=False, start_revision=r1, end_revision=r1)
mystring = str (h)
print mystring
result2 = re.findall(r'\d+\.\d+\.\d+ \[merge\]', mystring)
print result2
show_log() 没有 return 任何东西,而是写入它接受的日志格式化程序作为它的第二个参数。
您正在指定 to_file=sys.stdout
,因此输出将转到标准输出。
您可能希望将 io.StringIO() 对象作为 to_file 传递,然后对其调用 .getvalue() 以获取输出。
通常在 bzrlib 中可能有一个更好的模块,但我没能找到它。我希望能够 return bzrlib 函数的输出:log.show_log()
作为脚本,这样我就可以使用 python re.search
函数在其中查找特定信息日志的人类可读版本。
我曾尝试使用简单的 str()
函数,但没有成功。我只收到 NONE 作为我的反馈。
这是我的代码:
parser = argparse.ArgumentParser()
parser.add_argument('-r', '--revnum', type=int, metavar='', required=True, help='Baseline revision number')
parser.add_argument('-d', '--directory',type=str, metavar='',required=True,help='Directory that repository in question is located')
args = parser.parse_args()
r1= args.revnum
d1= args.directory
print ''
print 'Directory containing repository: '+ (d1)
print ''
print ("Input revision number: %s" %(r1))
print ''
b = Branch.open (d1)
lf = log.LongLogFormatter(to_file=sys.stdout, levels=0)
h = log.show_log(b, lf, verbose=False, start_revision=r1, end_revision=r1)
mystring = str (h)
print mystring
result2 = re.findall(r'\d+\.\d+\.\d+ \[merge\]', mystring)
print result2
show_log() 没有 return 任何东西,而是写入它接受的日志格式化程序作为它的第二个参数。
您正在指定 to_file=sys.stdout
,因此输出将转到标准输出。
您可能希望将 io.StringIO() 对象作为 to_file 传递,然后对其调用 .getvalue() 以获取输出。