Python Language
2to3 उपकरण
खोज…
वाक्य - विन्यास
- $ 2to3 [-options] पथ / से / file.py
पैरामीटर
पैरामीटर | विवरण |
---|---|
फ़ाइल नाम / निर्देशिका_नाम | 2to3 फ़ाइलों या निर्देशिकाओं की एक सूची को स्वीकार करता है जिसे इसके तर्क के रूप में बदलना है। निर्देशिका पायथन स्रोतों के लिए पुनरावर्ती हैं। |
विकल्प | विकल्प का विवरण |
-f FIX, --fix = FIX | लागू किए जाने वाले परिवर्तनों को निर्दिष्ट करें; डिफ़ॉल्ट: सभी। उपलब्ध परिवर्तनों को सूची --list-fixes |
-j प्रक्रियाएँ, - प्रक्रियाएँ = प्रक्रियाएँ | 2to3 समवर्ती चलाएं |
-x NOFIX, --nofix = NOFIX | एक परिवर्तन को छोड़ दें |
-एल, --लिस्ट-फिक्स | उपलब्ध परिवर्तनों की सूची बनाएं |
-p, --प्रिंट-फंक्शन | व्याकरण को बदलें ताकि print() को एक फ़ंक्शन माना जाए |
-v, --verbose | अधिक क्रिया उत्पादन |
--no-डिफ | आउटपुट रिफैक्टरिंग के भिन्न नहीं होते हैं |
डब्ल्यू | संशोधित फ़ाइलों को वापस लिखें |
-एन, -नोबैकअप | संशोधित फ़ाइलों का बैकअप न बनाएं |
-o OUTPUT_DIR, --output-dir = OUTPUT_DIR | इस निर्देशिका में आउटपुट फ़ाइलों को अधिलेखित इनपुट फ़ाइलों के बजाय रखें। इनपुट फ़ाइलों को संशोधित नहीं किए जाने पर बैकअप फ़ाइलों के रूप में -n ध्वज की आवश्यकता होती है। |
-W, - राइट-अपरिवर्तित-फाइलें | आउटपुट फ़ाइलें लिखें यहां तक कि कोई भी परिवर्तन आवश्यक नहीं थे। -o साथ उपयोगी है ताकि एक पूर्ण स्रोत पेड़ का अनुवाद और प्रतिलिपि बनाई जाए। तात्पर्य -w । |
--add-प्रत्यय = ADD_SUFFIX | सभी आउटपुट फ़ाइलनामों में संलग्न होने के लिए एक स्ट्रिंग निर्दिष्ट करें। आवश्यकता है -n यदि खाली नहीं है। Ex .: --add-suffix='3' .py3 फाइलें जनरेट करेगा। |
टिप्पणियों
2to3 टूल एक पायथन प्रोग्राम है जिसका उपयोग Python 2.x में लिखे गए कोड को Python 3.x कोड में बदलने के लिए किया जाता है। उपकरण पायथन 2.x स्रोत कोड को पढ़ता है और इसे वैध पायथन 3.x कोड में बदलने के लिए फिक्सर की एक श्रृंखला लागू करता है।
2to3 टूल मानक लाइब्रेरी में lib2to3 के रूप में उपलब्ध है जिसमें फिक्सर के एक समृद्ध सेट शामिल हैं जो लगभग सभी कोड संभाल लेंगे। चूंकि lib2to3 एक सामान्य लाइब्रेरी है, इसलिए 2to3 के लिए अपने स्वयं के फिक्सर लिखना संभव है।
मूल उपयोग
निम्नलिखित पायथन 2.x कोड पर विचार करें। फ़ाइल को example.py
रूप में सहेजें
def greet(name):
print "Hello, {0}!".format(name)
print "What's your name?"
name = raw_input()
greet(name)
उपरोक्त फ़ाइल में, कई असंगत लाइनें हैं। raw_input()
पद्धति को पायथन 3.x में input()
साथ बदल दिया गया है और print
अब एक बयान नहीं है, बल्कि एक फ़ंक्शन है। इस कोड को 2to3 टूल का उपयोग करके पायथन 3.x कोड में परिवर्तित किया जा सकता है।
यूनिक्स
$ 2to3 example.py
खिड़कियाँ
> path/to/2to3.py example.py
ऊपर दिए गए कोड को चलाने से मूल स्रोत फ़ाइल के खिलाफ अंतर दिखाई देगा जैसा कि नीचे दिखाया गया है।
RefactoringTool: Skipping implicit fixer: buffer
RefactoringTool: Skipping implicit fixer: idioms
RefactoringTool: Skipping implicit fixer: set_literal
RefactoringTool: Skipping implicit fixer: ws_comma
RefactoringTool: Refactored example.py
--- example.py (original)
+++ example.py (refactored)
@@ -1,5 +1,5 @@
def greet(name):
- print "Hello, {0}!".format(name)
-print "What's your name?"
-name = raw_input()
+ print("Hello, {0}!".format(name))
+print("What's your name?")
+name = input()
greet(name)
RefactoringTool: Files that need to be modified:
RefactoringTool: example.py
संशोधनों को -w ध्वज का उपयोग करके स्रोत फ़ाइल में वापस लिखा जा सकता है। जब तक -n ध्वज नहीं दिया जाता है, example.py.bak
लिए example.py.bak
नामक मूल फ़ाइल का बैकअप बनाया जाता है।
यूनिक्स
$ 2to3 -w example.py
खिड़कियाँ
> path/to/2to3.py -w example.py
अब example.py
फ़ाइल को Python 2.x से Python 3.x कोड में बदल दिया गया है।
एक बार समाप्त होने के बाद, example.py
लिए निम्न वैध पायथन 3.x कोड शामिल होंगे:
def greet(name):
print("Hello, {0}!".format(name))
print("What's your name?")
name = input()
greet(name)