背景
假設現在有一個密碼: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'\"\\"