14
2024
03
16:23:03

强制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))

#! /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'\"\\"




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/5446.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: