तो मैंने हाल ही में subprocess.Popen() फ़ंक्शन के तर्क के रूप में कमांड को विभाजित करने के लिए shlex.split() का उपयोग किया। मैंने याद किया कि लंबे समय तक मैंने एक विशिष्ट डिलीमीटर निर्दिष्ट एक स्ट्रिंग को विभाजित करने के लिए re.split() फ़ंक्शन का भी उपयोग किया था। क्या कोई बता सकता है कि उनके बीच क्या अंतर है? प्रत्येक परिदृश्य में कौन सा परिदृश्य सबसे उपयुक्त है?shlex.split() और re.split() के बीच क्या अंतर है?
5
A
उत्तर
8
shlex.split()
designed to work like the shell's split mechanism है।
यह सम्मान उद्धरण की तरह कार्य करने होंगे, आदि
>>> shlex.split("this is 'my string' that --has=arguments -or=something")
['this', 'is', 'my string', 'that', '--has=arguments', '-or=something']
re.split()
बस जो कुछ पैटर्न पर परिभाषित विभाजित कर देगा।
>>> re.split('\s', "this is 'my string' that --has=arguments -or=something")
['this', 'is', "'my", "string'", 'that', '--has=arguments', '-or=something']
shlex.split
की तरह काम करने के लिए अपनी खुद की regex परिभाषित करने के लिए कोशिश कर रहा है, बेकार में जटिल है अगर यह भी संभव है। अपने पसंदीदा संपादक में इन फ़ाइलों
>>> re.__file__
'/usr/lib/python3.5/re.py'
>>> shlex.__file__
'/usr/lib/python3.5/shlex.py'
ओपन और चारों ओर poking शुरू करते हैं, आप पाएंगे कि वे काफी अलग ढंग से काम करते हैं:
वास्तव में, दोनों के बीच अंतर को देखने के लिए आप हमेशा Use the Source, Luke कर सकते हैं।
संबंधित मुद्दे
- 1. [अपरिभाषित] और [,] के बीच क्या अंतर है?
- 2. # {} $ {} और% {} के बीच क्या अंतर है?
- 3. `&` और `ref` के बीच क्या अंतर है?
- 4. $ और $$ के बीच क्या अंतर है?
- 5. के बीच क्या अंतर है:। और: आर !?
- 6. वेरिलोग के बीच क्या अंतर है! और ~?
- 7. भिन्नता और '-' के बीच क्या अंतर है?
- 8. क्या $ @ और "$ @" के बीच कोई अंतर है?
- 9. * और * के बीच क्या अंतर है?
- 10. "$^एन" और "$ +" के बीच क्या अंतर है?
- 11. के बीच क्या अंतर है?
- 12. अंतर और कहां के बीच क्या अंतर है?
- 13. file_get_contents और fread बीच क्या अंतर है
- 14. @Android बीच क्या अंतर है: और एंड्रॉयड:
- 15. क्या बीच का अंतर है :: और ::: स्काला
- 16. "। +" और "। +?" के बीच अंतर
- 17. चिज़ेल और लावा और सीएलएएसएच के बीच क्या अंतर है?
- 18. Microsoft.AspNet.WebApi.OData और Microsoft.Data.OData और Microsoft.AspNet.OData के बीच क्या अंतर है?
- 19. re.split() के साथ rsplit() के बराबर क्या है?
- 20. $ {} और # {} के बीच अंतर क्या हैं?
- 21. क्या के बीच ("") अंतर और (शून्य)
- 22. PHP के बीच क्या अंतर है और इसमें शामिल है?
- 23. क्या) सूची के बीच का अंतर है (और है []
- 24. अपवाद के .TOString() और मैसेज के बीच क्या अंतर है?
- 25. 7zip के 7z.sfx और 7zsd.sfx के बीच क्या अंतर है?
- 26. lodash के _.map और _.pluck के बीच क्या अंतर है?
- 27. भविष्य के पूर्ण और flatMap के बीच क्या अंतर है?
- 28. सूची के लिए ::: और ++ के बीच क्या अंतर है?
- 29. टिप्पणियों के लिए% और %% के बीच क्या अंतर है?
- 30. डीएल के फाइलवर्सन और उत्पादवर्जन के बीच क्या अंतर है?
एक स्ट्रिंग को विभाजित करने के लिए? न तो प्रयोग करें, इसके बजाय बिल्टिन 'string.split (' delimiter ')' –
@TimCastelijns का उपयोग करें, यह आप जो विभाजित करना चाहते हैं उस पर बहुत निर्भर करता है। 'string.split' सबसे सरल लेकिन कम से कम सक्षम विकल्प है। – tdelaney