首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python是在变量中自动转义反斜杠。

问Python是在变量中自动转义反斜杠。
EN

Stack Overflow用户
提问于 2022-01-10 09:33:25
回答 1查看 219关注 0票数 0

我目前正在调试一个问题,在这个问题中,Python 3一直在变量中转义反斜杠。

Situation

我已经配置了一个Kubernetes秘密,并且我可以看到它作为env变量在我使用env | grep SECRET的基于debian的容器中被称为机密。“秘密”包含一个密码,密码由字母字符和多个反斜杠组成,例如"h\ell\o“。我现在想在我的python代码中使用这个秘密。我想从env变量中读取它,这样我就不必用纯文本在代码中编写它了。

我使用secret=os.getenv("SECRET")引用env变量并初始化包含秘密的变量。使用python交互式shell直接调用机密显示,它包含"h\ell\o“,因为Python会自动转义反斜杠。调用print(secret)返回"h\ell\o“,因为print将双反斜杠解释为转义反斜杠。

我现在不能使用变量秘密插入密码,因为它总是插入包含双反斜杠的密码,这是错误的密码。

显示所述情况的图像

问题

是否有方法禁用自动转义,或替换转义反斜杠?我尝试了几种使用codecs.encode() or codecs.decode()的方法。我还试过使用string.replace()

我不能更改密码。

EN

回答 1

Stack Overflow用户

发布于 2022-01-10 09:43:05

您可以使用repr()获得字符串的确切表示形式。

用例示例可能如下所示:

代码语言:javascript
复制
>>> secret = "h\\ell\\o"
>>> print(secret)
h\ell\o
>>> print(repr(secret))
'h\\ell\\o'
>>> fixed_secret = repr(secret).replace("'", "") # Remove added ' ' before and after your secret since ' ' only represent the string's quotes
>>> print(fixed_secret)
h\\ell\\o
>>>
>>> # Just to make sure that both, secret and fixed_secret, are of type string
>>> type(secret)
<class 'str'>
>>> type(fixed_secret)
<class 'str'>
>>>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70650275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档