強制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'\"\\"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM