.. _beyond2to3: ========================================== \ :py:mod:`2to3`\ 縺ョ蜈医↓ ========================================== .. |2to3| replace:: :py:mod:`2to3` \ |2to3|\ 縺ッ蜆ェ繧後◆繝��繝ォ縺ァ縺吶′縲}ython3 繧サ繝シ繝輔↓縺吶k縺溘a縺ォ縺ッ縲� 繧ゅ≧蟆代@謇九r蜉�縺医k蠢�ヲ√′縺ゅk蝣エ蜷医b縺ゅj縺セ縺吶� 迚ケ縺ォ蛻カ蠕。髢「菫ゅ〒縺ッ繝舌う繝翫Μ繝��繧ソ繧貞叙繧頑桶縺��エ蜷医↓豕ィ諢上′蠢�ヲ√〒縺吶� 譁�ュ怜梛�上ヰ繧、繝翫Μ蝙九ョ繝シ繧ソ ++++++++++++++++++++++++++ Python2縺ァ縺ッC險隱槭°繧峨�莨晉オア繧貞女縺醍カ吶>縺ァ(?)縲∵枚蟄怜梛繝��繧ソ(\ :py:class:`str`\ )縺ィ繝舌う繝亥梛繝��繧ソ(\ :py:class:`bytes`\ )縺ォ縺ッ 譛ャ雉ェ逧�↑驕輔>縺ッ縺ゅj縺セ縺帙s縺ァ縺励◆縲ゅ→縺�≧縺九― :py:class:`bytes`\ 縺ッ\ :py:class:`str`\ 縺ョ蛻・蜷阪→縺ェ縺」縺ヲ縺�∪縺吶� 縺セ縺溘�2byte譁�ュ励r蜿悶j謇ア縺�◆繧√↓縲「nicode蝙九′蟆主�縺輔l縺ヲ縺�∪縺吶� unicode蝙九→\ :py:class:`str`\ 蝙九�螟画鋤縺ッencode/decode縺ェ縺ゥ縺ョ繝。繧ス繝�ラ繧剃スソ縺」縺ヲ陦後>縺セ縺吶� 縺ィ縺薙m縺後 ̄ython3縺ァ縺ッ 譁�ュ怜�(\ :py:class:`str`\ )縺ッ unicode蝙九�蜷梧э隱槭→縺ェ繧翫∪縺吶Vnicode譁�ュ怜�繧定。ィ縺吶ヰ繧、繝亥梛繝��繧ソ(\ :py:class:`bytes`\ )縺ッunicode譁�ュ怜�繧弾ncode縺吶k縺薙→縺ァ蠕励i繧後∪縺吶� 縺セ縺溘√ヰ繧、繝亥�繧置nicode譁�ュ怜�(\ :py:class:`str`\ )縺ォ螟画鋤縺吶k縺溘a縺ォ縺ッ縲‥ecode繝。繧ス繝�ラ縺ョ蜉ゥ縺代r蛟溘j縺ェ縺代l縺ー縺�¢縺セ縺帙s縲� .. _python2string: .. code-block:: python :caption: Python縺ァ縺ョ譁�ュ怜梛繝��繧ソ >>> ("縺�",u"縺�", r"縺�",b"\xe3\x81\x82") ("縺�",u"縺�", r"縺�",b"\xe3\x81\x82") ('\xe3\x81\x82', u'\u3042', '\xe3\x81\x82', '\xe3\x81\x82') >>> s="縺ゅ>縺�" s="縺ゅ>縺�" >>> type(s) type(s) <type 'str'> >>> u=s.decode('utf-8') u=s.decode('utf-8') >>> type(u) type(u) <type 'unicode'> >>> u u u'\u3042\u3044\u3046' >>> s s '\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86' >>> .. _python3string: .. code-block:: python3 :caption: Python縺ァ縺ョ譁�ュ怜梛繝��繧ソ >>> ("縺�",u"縺�", r"縺�",b"\xe3\x81\x82") ("縺�",u"縺�", r"縺�",b"\xe3\x81\x82") ('縺�', '縺�', '縺�', b'\xe3\x81\x82') >>>s="縺ゅ>縺�" s="縺ゅ>縺�" >>> type(s) type(s) <class 'str'> >>> b=s.encode('utf-8') b=s.encode('utf-8') >>> type(b) type(b) <class 'bytes'> >>> b b b'\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86' >>> .. _python23StringTypes: .. tabularcolumns:: |l|c|c|c|c|c|c| ======== ======== ======== ======== ======== ======== ======== Vers. python2 python3 -------- -------------------------- -------------------------- types encode decode [0] encode decode [0] ======== ======== ======== ======== ======== ======== ======== bytes ->str(b) ->u str **N/A** ->str(u) int str ->str(b) -> u str ->b **N/A** u unicode ->str(b) -> u u ->b **N/A** u ======== ======== ======== ======== ======== ======== ======== 騾壼クク縺ョ譁�ュ怜梛繝��繧ソ縺�縺代r蜿悶j謇ア縺」縺ヲ縺�k髯舌j縺ァ縺ッ縲― :py:mod:`2to3`\ 縺ョ螟画鋤蠕後�繝励Ο繧ー繝ゥ繝�縺ッ蝠城。後↑縺丞虚菴懊☆繧九〒縺励g縺�ゅ@縺九@Python2縺ァ\ :py:class:`str`\ 蝙九ョ繝シ繧ソ繧箪 :py:class:`bytes`\ 蝙九ョ繝シ繧ソ縺ィ縺励※蜿悶j謇ア縺�◆繧√↓菴ソ縺」縺ヲ縺�k繝励Ο繧ー繝ゥ繝�縺ァ縺ッ縲― :py:mod:`2to3`\ 縺ッ閾ェ蜍募、画鋤繧定。後≧縺薙→縺後〒縺阪∪縺帙s縲�\ :py:class:`str`\ 蝙九ョ繝シ繧ソ縺ィ縺励※蜿悶j謇ア縺�∋縺阪°(縺昴�蝣エ蜷医↓縺ッUnicode蝙�=python3縺ョ\ :py:class:`str`\ 蝙九↓螟画鋤��,\ :py:class:`bytes`\ 蝙九ョ繝シ繧ソ縺ィ縺励※蜿悶j謇ア縺�∋縺阪°(縺昴�蝣エ蜷医↓縺ッPython3縺ァ縺ッ譏守、コ逧�↓\ :py:class:`bytes`\ 蝙九r謖�ョ壹☆繧句ソ�ヲ√′縺ゅk�峨rpython2縺ョ繧ス繝シ繧ケ縺九i閾ェ蜍慕噪縺ォ蛻、譁ュ縺吶k縺薙→縺� \ :py:mod:`2to3`\ 縲縺ォ縺ッ縺ァ縺阪↑縺�◆繧√〒縺吶� py2/p3縺ァ荳。遶九☆繧九◆繧√↓縺ッ縲― :py:class:`bytes`\ 縺ィunicode繧呈�遉コ逧�↓菴ソ縺�� \ :py:class:`bytes`\ -> unicode縺ョ譎ゅ↓decode繧偵「nicode-> \ :py:class:`bytes`\ 縺ョ螟画鋤縺ァencode繧剃スソ縺�→豎コ繧√※縺翫¢縺ー縲� \ :py:mod:`2to3`\ 縺ッ縺昴l繧帝�シ繧翫↓螟画鋤繧定。後>縺セ縺吶� \ :py:mod:`2to3`\ 驕ゥ逕ィ蜑阪↓縺薙l繧貞ョ滓命縺励※縺翫¢縺ー縲√≠縺ィ縺ッ菴募コヲ\ :py:mod:`2to3`\ 繧帝壹@縺ヲ繧ょ撫鬘檎┌縺��縺壹〒縺吶� * 譁�ュ怜�縺ィ縺励※菴ソ縺��エ蜷医�縲「nicode * 繝舌う繝亥�縺ィ縺励※菴ソ縺��エ蜷医�縲― :py:class:`bytes`\ :py:mod:`cVXI11`\ 繧Ы :py:mod:`EPICS CA`\ 繝「繧ク繝・繝シ繝ォ縺ァ縺ッpython2/python3縺ョ蜿梧婿繧偵し繝昴�繝医☆繧九◆繧√↓縲√%縺ョ讒倥↑螟画峩繧貞刈縺医※縺�∪縺吶� 縺セ縺溘― :py:mod:`cVXI11`\ 繧Ы :py:mod:`EPICS CA`\ 繝「繧ク繝・繝シ繝ォ縺ッsetup 繝��繝ォ繧剃スソ縺」縺歟uild譎ゅ↓\ :py:mod:`2to3`\ 繝��繝ォ繧定�蜍慕噪縺ォ驕ゥ逕ィ縺吶k讒倥↓縺励※縺�∪縺吶� :py:mod:`urllib`\ 縺ョ\ :py:func:`urlopen`\ 縺ェ縺ゥ縺九i霑斐&繧後k蛟、繧�\ :py:class:`\ :py:class:`bytes`\ `\ 蝙九�繝��繧ソ縺ィ縺ェ縺」縺ヲ縺�∪縺吶�縺ァ縲� 繝�く繧ケ繝医→縺励※蜃ヲ逅�☆繧句燕縺ォ\ :py:meth:`decode`\ 繝。繧ス繝�ラ繧剃スソ縺」縺ヲ :py:class:`str`\ 縺ォ螟画鋤縺励※鄂ョ縺阪∪縺励g縺�� 繝ェ繝�Λ繝ォ縺ェ繝舌う繝亥�陦ィ迴セ (:py:const:`b"abc"`\ 縺ェ縺ゥ�峨�Python2, Python3縺ョ蜿梧婿縺ァ蛻ゥ逕ィ蜿ッ閭ス縺ァ縺吶� 繝舌う繝亥�縺ィ縺励※蜿悶j謇ア縺�ョ壽焚繝��繧ソ縺ッ縲√%縺ョ陦ィ迴セ縺ォ縺励※鄂ョ縺上%縺ィ縺ァ縲}ython2/python3縺ョ蜿梧婿縺ァ縺サ縺シ蜷後§讒倥↓蜿悶j謇ア縺�%縺ィ縺後〒縺阪∪縺吶� 繝舌う繝亥�(byte)縺九i1繝舌う繝医�繝��繧ソ繧貞叙繧雁�縺咎圀縺ォ縺ッ縲∵ウィ諢上′蠢�ヲ√〒縺吶1ython2縺ァ縺ッ[n]繧ェ繝壹Ξ繝シ繧ソ縺ァ1繝舌う繝医�繝��繧ソ繧偵ヰ繧、繝亥�(�拿 :py:class:`str`\ )繧� 蜿悶j蜃コ縺吶%縺ィ縺後〒縺阪∪縺吶ゅ@縺九@縲}ython3縺ァ縺ッbyte蛻励°繧閏n]繧ェ繝壹Ξ繝シ繧ソ繧剃スソ縺」縺ヲ1繝舌う繝医ョ繝シ繧ソ繧貞叙繧雁�縺吶→縲(nt蝙九�繝��繧ソ縺ィ縺ェ縺」縺ヲ縺励∪縺�∪縺吶� 荳譁ケ[n:n+1]縺ァ荳繝舌う繝亥�縺ョ繝��繧ソ繧貞叙繧雁�縺励◆蝣エ蜷医↓縺ッ縲― :py:class:`bytes`\ 蝙九↓縺ェ縺」縺ヲ縺�∪縺吶ゅ縲縺薙�讒倥↑蜍穂ス懊�驕輔>繧貞精蜿弱☆繧九◆繧√↓縺ッ縲� python2縺ァ繧�1繝舌う繝医�繝��繧ソ繧貞叙繧雁�縺吝�エ蜷医↓繧�[n:n+1]繧剃スソ縺」縺ヲ縺翫¥縺ィ縺�≧驟肴�縺悟ソ�ヲ√〒縺吶� .. :code: python2 :caption: python2縺ァ1繝舌う繝医ョ繝シ繧ソ繧貞叙繧雁�縺吶� >>> b=b"abc" >>> b[0] 'a' >>> b[0:1] 'a' .. :code: python3 :caption: python3縺ァ1繝舌う繝医ョ繝シ繧ソ繧貞叙繧雁�縺吶� >>> b=b'abc' >>> b[0] 97 >>> type(b[0]) <class 'int'> >>> b[0:1] b'a' >>> type(b[0:1]) <class 'bytes'> 縺セ縺溘}ython2/python3縺ィ繧� bytearray 蝙九r謖√▲縺ヲ縺�∪縺吶Cytearray蝙九�PY2/PY3縺ァ讎ゅ�蜷後§methods繧呈戟縺」縺ヲ縺�k(萓句、厄シ喞opy,clear,maketrans)縺ョ縺ァ縲� byte蝙九〒縺ッ縺ェ縺上|ytearray蝙九r遨肴・オ逧�↓菴ソ縺��繧Qython2/pytho3莠呈鋤縺ィ縺吶k縺溘a縺ォ縺ッ譛牙柑縺ィ閠�∴繧峨l縺セ縺吶� open縺ョencoding ---------------- 譁�ュ怜梛�十 :py:class:`bytes`\ 蛻励�蜿匁桶縺ァ豕ィ諢上☆縺ケ縺堺コ九→縺励※縲{pen髢「謨ー縺ョpython2/python3縺ァ縺ョ 驕輔>縺後≠繧翫∪縺吶� python3縺ォ縺翫>縺ヲ縲∵枚蟄怜梛繝��繧ソ縺ョ繝輔ぃ繧、繝ォ蜈・蜃コ蜉帙〒縺ッ縲∝�蜃コ蜉帙Δ繝シ繝峨′繝�く繧ケ繝医Δ繝シ繝�("r"縺ゅk縺��"w")縺ァ縺ゅk蝣エ蜷医↓縺ッ縲√ヵ繧。繧、繝ォ縺梧悄蠕�☆繧九お繝ウ繧ウ繝シ繝�ぅ繝ウ繧ー縺ク縺ョ螟画鋤縺悟ソ�ヲ√→縺ェ繧翫∪縺吶� 繝�ヵ繧ゥ繝ォ繝医�繧ィ繝ウ繧ウ繝シ繝�ぅ繝ウ繧ー縺ッ繝励Λ繝�ヨ繝輔か繝シ繝�萓晏ュ倥〒, locale.getpreferredencoding(False) 縺ョ霑斐☆蛟、縺御スソ繧上l縺セ縺吶� 繝舌う繝翫Μ繝��繧ソ縺ョ繝輔ぃ繧、繝ォ蜈・蜃コ蜉帙〒縺ッ繝舌う繝翫Μ繝「繝シ繝�("rb",'wb"縺ェ縺ゥ�峨r 菴ソ縺�%縺ィ縺梧耳螂ィ縺輔l縺ヲ縺�∪縺吶ゅ∪縺溘√◎縺�@縺ヲ縺翫¢縺ー縲}ython2/python3縺ョ蜿梧婿縺ァ諠ウ螳壹@縺滄壹j縺ョ 蜍穂ス懊r縺吶k縺ァ縺励g縺�� .. _python2open: .. code-block:: python :caption: python2 縺ァ縺ョopen()髢「謨ー縺ョ繝励Ο繝医ち繧、繝� >>> help(open) open(...) open(name[, mode[, buffering]]) -> file object #繝�ヵ繧ゥ繝ォ繝医�繧ィ繝ウ繧ウ繝シ繝�ぅ繝ウ繧ー >>> locale.getpreferredencoding(False) locale.getpreferredencoding(False) 'US-ASCII' .. _python3open: .. code-block:: python3 :caption: python3 縺ァ縺ョopen()髢「謨ー縺ョ繝励Ο繝医ち繧、繝� >>> help(open) open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) Open file and return a stream. Raise OSError upon failure. #繝�ヵ繧ゥ繝ォ繝医�繧ィ繝ウ繧ウ繝シ繝�ぅ繝ウ繧ー >>> locale.getpreferredencoding(False) locale.getpreferredencoding(False) 'UTF-8' Python2/Python3縺ョ蛻、螳� ================================== python2/python3縺ョ蜿梧婿縺ォ蟇セ蠢懊☆繧九�繝ュ繧ー繝ゥ繝�繧帝幕逋コ縺吶k縺溘a縺ォ縺ッ縲� 莉雁虚菴應クュ縺ョ迺ー蠅�r蛻、螳壹☆繧句ソ�ヲ√′蜃コ縺ヲ縺阪∪縺吶ゅ◎縺ョ蝣エ蜷医↓縺ッ谺。縺ョ繧ウ繝シ繝峨r 菴ソ縺��縺瑚憶縺輔◎縺�〒縺吶� .. code:: python import sys PY3 = sys.version_info > (3,) 縺薙l縺ァ, 螟画焚\ :py:data:`PY3`\ 縺ッpython2縺ァ縺ッ \ :py:const:`False`\ ,python3縺ァ縺ッ縲― :py:const:`True`\ 縺ィ縺ェ縺」縺ヲ縺�∪縺吶ゅsys.version_info縺ッ2.7莉・髯阪�version_info蝙九�繧ェ繝悶ず繧ァ繧ッ繝医〒縺吶′縲�2.6縺ゅk縺��縺昴l莉・蜑阪�繝舌�繧ク繝ァ繝ウ縺ァ縺ッ縲》uple縺ィ縺ェ縺」縺ヲ縺�∪縺吶� 縺励°縺励∽ク願ィ倥�蠑上�縺�★繧後�迺ー蠅�↓縺翫>縺ヲ繧よュ」縺励¥蜍穂ス懊@縺セ縺吶�