ముడి స్ట్రింగ్‌లతో పైథాన్‌లో ఎస్కేప్ సీక్వెన్స్‌లను విస్మరించడం (డిజేబుల్ చేయడం).

వ్యాపారం

...',"..."పైథాన్‌లో, మీరు ఈ క్రింది అక్షరాలలో ఒకదానితో ఈ స్ట్రింగ్ లిటరల్స్‌ను ప్రిఫిక్స్ చేస్తే, ఎస్కేప్ సీక్వెన్స్‌ని విస్తరించకుండా విలువ స్ట్రింగ్‌గా మారుతుంది.

  • r
  • R

విండోస్ పాత్‌లు మరియు సాధారణ వ్యక్తీకరణ నమూనాలు వంటి చాలా బ్యాక్‌స్లాష్‌లను ఉపయోగించే స్ట్రింగ్‌లతో వ్యవహరించేటప్పుడు ఉపయోగకరంగా ఉంటుంది.
కింది సమాచారం ఇక్కడ అందించబడింది.

  • తప్పించుకునే క్రమం
  • ముడి స్ట్రింగ్‌లలో ఎస్కేప్ సీక్వెన్స్‌లను విస్మరించండి (డిసేబుల్ చేయండి).
  • సాధారణ స్ట్రింగ్‌ను ముడి స్ట్రింగ్‌గా మార్చండి:repr()
  • చివర బ్యాక్‌స్లాష్‌ని గమనించండి.

తప్పించుకునే క్రమం

పైథాన్‌లో, సాధారణ స్ట్రింగ్‌లో ప్రాతినిధ్యం వహించలేని అక్షరాలు (ట్యాబ్‌లు మరియు న్యూలైన్‌లు వంటివి) C లాంగ్వేజ్ మాదిరిగానే బ్యాక్‌స్లాష్‌లతో ఎస్కేప్ సీక్వెన్స్‌లను ఉపయోగించి వివరించబడ్డాయి. ఎస్కేప్ సీక్వెన్స్ యొక్క ఉదాహరణ క్రింద చూపబడింది.

  • \t
  • \n
s = 'a\tb\nA\tB'
print(s)
# a b
# A B

ముడి స్ట్రింగ్‌లలో ఎస్కేప్ సీక్వెన్స్‌లను విస్మరించండి (డిసేబుల్ చేయండి).

...',"..."మీరు అటువంటి స్ట్రింగ్‌ని లిటరల్‌గా కింది వాటిలో ఒకదానితో ప్రిఫిక్స్ చేస్తే, ఎస్కేప్ సీక్వెన్స్‌ని విస్తరించకుండా విలువ స్ట్రింగ్‌గా మారుతుంది. అటువంటి తీగను ముడి స్ట్రింగ్ అంటారు.

  • r
  • R
rs = r'a\tb\nA\tB'
print(rs)
# a\tb\nA\tB

ముడి స్ట్రింగ్ రకం అని పిలువబడే ప్రత్యేక రకం లేదు, ఇది కేవలం స్ట్రింగ్ రకం మరియు ఈ క్రింది విధంగా సూచించబడిన బ్యాక్‌స్లాష్‌తో సాధారణ స్ట్రింగ్‌కు సమానం
\\

print(type(rs))
# <class 'str'>

print(rs == 'a\\tb\\nA\\tB')
# True

సాధారణ స్ట్రింగ్‌లో, ఎస్కేప్ సీక్వెన్స్ ఒక అక్షరంగా పరిగణించబడుతుంది, కానీ ముడి స్ట్రింగ్‌లో, బ్యాక్‌స్లాష్‌లు కూడా అక్షరాలుగా పరిగణించబడతాయి. స్ట్రింగ్ యొక్క పొడవు మరియు ప్రతి అక్షరం క్రింది విధంగా ఉంటుంది.

print(len(s))
# 7

print(list(s))
# ['a', '\t', 'b', '\n', 'A', '\t', 'B']

print(len(rs))
# 10

print(list(rs))
# ['a', '\\', 't', 'b', '\\', 'n', 'A', '\\', 't', 'B']

విండోస్ పాత్

మీరు Windows పాత్‌ను స్ట్రింగ్‌గా సూచించాలనుకున్నప్పుడు ముడి స్ట్రింగ్‌ని ఉపయోగించడం ఉపయోగకరంగా ఉంటుంది.

విండోస్ పాత్‌లు బ్యాక్‌స్లాష్‌లతో వేరు చేయబడ్డాయి, కాబట్టి మీరు సాధారణ స్ట్రింగ్‌ని ఉపయోగిస్తే, మీరు ఈ క్రింది విధంగా మార్గం నుండి తప్పించుకోవాలి, కానీ మీరు ముడి స్ట్రింగ్‌ని ఉపయోగిస్తే, మీరు దానిని అలాగే వ్రాయవచ్చు. విలువలు సమానంగా ఉంటాయి.
\\

path = 'C:\\Windows\\system32\\cmd.exe'
rpath = r'C:\Windows\system32\cmd.exe'
print(path == rpath)
# True

దిగువ వివరించిన విధంగా, బేసి సంఖ్యలో బ్యాక్‌స్లాష్‌లతో ముగిసే స్ట్రింగ్ లోపం ఏర్పడుతుందని గమనించండి. ఈ సందర్భంలో, స్ట్రింగ్‌ను సాధారణ స్ట్రింగ్‌గా వ్రాయడం లేదా స్ట్రింగ్ చివరను మాత్రమే సాధారణ స్ట్రింగ్‌గా రాయడం ద్వారా దాన్ని కలపడం అవసరం.

path2 = 'C:\\Windows\\system32\\'
# rpath2 = r'C:\Windows\system32\'
# SyntaxError: EOL while scanning string literal
rpath2 = r'C:\Windows\system32' + '\\'
print(path2 == rpath2)
# True

repr()తో సాధారణ స్ట్రింగ్‌లను ముడి స్ట్రింగ్‌లుగా మార్చండి

మీరు ఎస్కేప్ సీక్వెన్స్‌లను విస్మరిస్తూ (డిజేబుల్ చేయడం) సాధారణ స్ట్రింగ్‌ను ముడి స్ట్రింగ్‌గా మార్చాలనుకుంటే, మీరు అంతర్నిర్మిత ఫంక్షన్ repr()ని ఉపయోగించవచ్చు.

s_r = repr(s)
print(s_r)
# 'a\tb\nA\tB'

ఏ repr() అనేది ఒక ఆబ్జెక్ట్‌ను సూచించే స్ట్రింగ్ అంటే అది లీడింగ్ మరియు ట్రైలింగ్ క్యారెక్టర్‌లతో eval()కి పాస్ చేసినప్పుడు అదే విలువను కలిగి ఉంటుంది.

print(list(s_r))
# ["'", 'a', '\\', 't', 'b', '\\', 'n', 'A', '\\', 't', 'B', "'"]

స్లైస్‌లను ఉపయోగించి, ముడి స్ట్రింగ్‌కు సమానమైన స్ట్రింగ్‌ను r జతచేయబడి మనం పొందవచ్చు.

s_r2 = repr(s)[1:-1]
print(s_r2)
# a\tb\nA\tB

print(s_r2 == rs)
# True

print(r'\t' == repr('\t')[1:-1])
# True

చివర బ్యాక్‌స్లాష్‌ని గమనించండి.

ఒక బ్యాక్‌స్లాష్ కోటింగ్ అక్షరం తర్వాత వెంటనే తప్పించుకుంటుంది కాబట్టి, స్ట్రింగ్ చివరిలో బేసి సంఖ్యలో బ్యాక్‌స్లాష్‌లు ఉంటే ఎర్రర్ ఏర్పడుతుంది. బ్యాక్‌స్లాష్‌ల సరి సంఖ్య సరే.

# print(r'\')
# SyntaxError: EOL while scanning string literal

print(r'\\')
# \\

# print(r'\\\')
# SyntaxError: EOL while scanning string literal
Copied title and URL