डेवी,
तुम कहो तो आप बस अपने स्ट्रिंग बंद उद्धरण छोड़ सकते हैं।
एक परियोजना के लिए मैं काम कर रहा हूं, मैं अपने कुछ कॉन्फ़िगरेशन विकल्पों के लिए मूल्य के रूप में लगभग किसी भी पायथन स्ट्रिंग का प्रतिनिधित्व करने में सक्षम होना चाहता था और उस बिंदु पर और अधिक मैं कच्चे के रूप में उनमें से कुछ को संभालने में सक्षम होना चाहता था स्ट्रिंग अक्षर। (मैं चाहता हूं कि कॉन्फ़िगरेशन \ n, \ x1b, और इसी तरह की चीजों को संभालने में सक्षम हो)।
def EvalStr(s, raw=False):
r'''Attempt to evaluate a value as a Python string literal or
return s unchanged.
Attempts are made to wrap the value in one, then the
form of triple quote. If the target contains both forms
of triple quote, we'll just punt and return the original
argument unmodified.
Examples: (But note that this docstring is raw!)
>>> EvalStr(r'this\t is a test\n and only a \x5c test')
'this\t is a test\n and only a \\ test'
>>> EvalStr(r'this\t is a test\n and only a \x5c test', 'raw')
'this\\t is a test\\n and only a \\x5c test'
'''
results = s ## Default returns s unchanged
if raw:
tmplate1 = 'r"""%s"""'
tmplate2 = "r'''%s'''"
else:
tmplate1 = '"""%s"""'
tmplate2 = "'''%s'''"
try:
results = eval(tmplate1 % s)
except SyntaxError:
try:
results = eval(tmplate2 %s)
except SyntaxError:
pass
return results
... जो मुझे लगता है कि कुछ भी है कि दोनों ट्रिपल एकल और ट्रिपल डबल उद्धृत तार शामिल नहीं है संभाल लेंगे:
उस मामले में मैं कुछ इस तरह इस्तेमाल किया।
(वह एक कोने का मामला मेरी आवश्यकताओं से परे है)।
एसओ पर इस कोड की एक विषमता है; सिंटेक्स हाइलाइटर द्वारा भ्रमित प्रतीत होता है तथ्य यह है कि मेरा डॉकस्ट्रिंग कच्चे स्ट्रिंग है। इस विशेष समारोह के लिए सबसे अच्छा काम करना आवश्यक था)।
स्रोत
2009-08-21 22:27:41
नोट अंतिम वाक्य अद्यतन किया जाना चाहिए। 'स्ट्रिप()' स्ट्रिंग को संशोधित करता है यदि यह प्रारंभ होता है या निर्दिष्ट स्ट्रिंग के साथ समाप्त होता है। जैसे ''' bar'.strip (" '")' रिटर्न '' बार 'और' बार 'नहीं। – Jonny