强制python repr以单引号或者双引号格式返回字符串表达式

背景

假设现在有一个密码:12345678‘ “ \

现在需要将这个密码作为一个参数传给一个可执行程序a.exe

a.exe ”密码“ 或者a.exe '密码'

这个时候就需要对’或者”,\进行转义。

某些语言只支持双引号字符串,例如C。

repr方法

python repr函数可以解决这个问题。

但是repr方法有如下特点:

1.如果字符串中有单引号且无双引号,则返回的字符串表达式为双引号格式;

2.其余情况全都返回单引号格式。

强制python repr以单引号或者双引号格式返回字符串表达式

下述两个方法可以达成这个功能。

#! /usr/bin/python3


def reprs(s):
    return "'" + repr('"' + s)[2:]


def reprd(s):
    return '"' + reprs(s)[1:-1].replace('"', '\\"').replace('\\\'', '\'') + '"'


info = "12345678'\"\\"
print(repr("12345678'\\"))
print(repr(info))
print(reprs(info))
print(reprd(info))

运行结果如下:

"12345678'\\"
'12345678\'"\\'
'12345678\'"\\'
"12345678'\"\\"

 

上一篇:Android RadioGroup 及资源文件 & selector


下一篇:Python 中的魔术方法(五)类的展示方法, __str__ 和 __repr__