[英]input() and literal unicode parsing
使用input()
將反斜杠用作文字反斜杠,因此我無法使用unicode解析字符串輸入。
我的意思是:
將類似
"\\uXXXX\\uXXXX\\uXXXX"
的字符串粘貼到input()
調用中將被解釋為"\\\\uXXXX\\\\uXXXX\\\\uXXXX"
但我希望它將\\u\u003c/code>讀為單個字符,而不是兩個單獨的字符。
有誰知道如何或如有可能實現這一目標?
編輯:我正在接受上述輸入,並將其轉換為如下的ascii。
import unicodedata
def Reveal(unicodeSol):
solution = unicodedata.normalize('NFKD', unicodeSol).encode('ascii', 'ignore')
print(solution)
while(True):
UserInput = input("Paste Now: ")
Reveal(UserInput)
根據我標記的答案,正確的解決方案是:
import unicodedata
import ast
def Reveal(unicodeSol):
solution = unicodedata.normalize('NFKD', unicodeSol).encode('ascii', 'ignore')
print(solution)
while(True):
UserInput = ast.literal_eval('"{}"'.format(input("Paste Now: ")))
Reveal(UserInput)
如果可以確定輸入中不包含引號,則可以通過在兩端加上引號將輸入轉換為字符串文字表示形式,然后使用ast.literal_eval()
將其求值為字符串。 范例-
import ast
inp = input("Input : ")
res = ast.literal_eval('"{}"'.format(inp))
如果輸入中可以包含引號,則可以在使用ast.literal_eval進行評估之前,將雙引號替換為r'\\"'
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.