पायथन 3.0: टोकननाइजेशन और बाइट्सियो - पायथन, आईओ, टोकननाइजेशन, बाइट्सियो

जब करने का प्रयास किया गया tokenize python3.0 में एक स्ट्रिंग, मुझे एक अग्रणी क्यों मिलता है "utf-8" टोकन शुरू होने से पहले?

वहाँ से पायथन 3 डॉक्स, tokenize अब इस प्रकार इस्तेमाल किया जाना चाहिए:

g = tokenize(BytesIO(s.encode("utf-8")).readline)

हालाँकि, जब टर्मिनल पर यह प्रयास करते हैं, तो निम्न होता है:

>>> from tokenize import tokenize
>>> from io import BytesIO
>>> g = tokenize(BytesIO("foo".encode()).readline)
>>> next(g)
(57, "utf-8", (0, 0), (0, 0), "")
>>> next(g)
(1, "foo", (1, 0), (1, 3), "foo")
>>> next(g)
(0, "", (2, 0), (2, 0), "")
>>> next(g)

के साथ क्या है utf-8 टोकन जो दूसरों को पहले देता है? क्या यह होने के लिए माना गया है? यदि ऐसा है, तो क्या मुझे हमेशा पहले टोकन को छोड़ देना चाहिए?

[संपादित करें]

मैंने पाया है कि टोकन टाइप 57 है tokenize.ENCODING, जो आसानी से टोकन स्ट्रीम से बाहर फ़िल्टर किया जा सकता है अगर जरूरत हो।

उत्तर:

जवाब के लिए 2 № 1

यह स्रोत की कोडिंग कुकी है। आप एक स्पष्ट रूप से निर्दिष्ट कर सकते हैं:

# -*- coding: utf-8 -*-
do_it()

अन्यथा पायथन डिफ़ॉल्ट इनकोडिंग मान लेता है, पायथन 8 में utf-8।


संबंधित सवाल
सबसे लोकप्रिय