[英]How to get rid of special characters in python string objects
这是我的代码
def get_current_branch():
"returns current working branch."
init()
try:
with cd(env.repo_path):
with hide('output','running','warnings'):
cmd = 'git branch'
out = run(cmd, shell=True).split('\n')
print out
for branch in out:
if '*' in branch:
temp = branch.split(' ')[1]
out = temp
return out
except Exception as msg:
print(red("\nError!!!\n\n" + str(msg)))
以上代码的输出结果是:
['RALP\x1b[m\r', ' SALP\x1b[m\r', '* \x1b[32mintegration\x1b[m']
实际的分支名称是RALP,SALP和集成。 但是所有这些特殊字符都破坏了文本处理。 如何摆脱这些角色?
使用正则表达式删除它们
import re
out = re.sub('\x1b[^m]*m', '', out)
out = re.sub('\r$', '', out)
out = re.sub('\*', '', out)
out = out.strip()
仅供参考,这些序列是ANSI转义码,用于在终端中为文本添加颜色。 如果您运行git branch --no-color
,那么部分将被自动删除。
另外,将temp = branch.split(' ')[1]
更改为temp = branch.split('*')[1]
。 这将自动删除当前分支中的*。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.