Python(環境)

2025年3月 6日 (木)

[Python]環境変数を取得する

osモジュールのenvironオブジェクトを参照する。以下はWindows環境下で行った例。Windowsの仕様として、大文字小文字は区別しない。存在しない環境変数を指定した場合はNoneが返される。

>>> import os
>>> print(os.environ.get('HOMEDRIVE'))
C:
>>> print(os.environ.get('WINDIR'))
C:\Windows
>>> print(os.environ.get('windir'))
C:\Windows
>>> print(os.environ.get('windows'))
None

2025年2月 8日 (土)

[Python]エラーメッセージ「UnicodeDecodeError: 'cp932' codec can't decode byte 0x○ in position ○: illegal multibyte sequence」

Windowsの対話型実行環境で、あらかじめ作成したスクリプトを読み込んで実行しようとして、このようなエラーメッセージができることがある。これは、ファイルの文字コードを正しく指定していないことが原因。Windows版はShift_JISであることを前提に動作しているため、UTF-8で保存されたファイルとそのまま読み込もうとすると、このエラーメッセージが表示される。

以下は、以下の2行からなるスクリプトを作成してShift_JISでprintsjis.py、UTF-8でprintutf-8.pyとして保存しておく。

print('セナディア役の鈴木みのりさん、かわいい。')
print('リフ役の瀬戸麻沙美さん、かわいい。')

対話型実行環境を起動し、それぞれのスクリプトを読み込んで実行する。ファイルの文字コードを指定しないとShift_JISとして読み込むため、encodingオプションを使用して文字コードを指定して読み込んでいる。

>python
Python 3.11.7 | packaged by Anaconda, Inc. | (main, Dec 15 2023, 18:05:47) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exec(open('printsjis.py').read())
セナディア役の鈴木みのりさん、かわいい。
リフ役の瀬戸麻沙美さん、かわいい。
>>> exec(open('printutf-8.py').read())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'cp932' codec can't decode byte 0x○ in position ○: illegal multibyte sequence
>>> exec(open('printutf-8.py', encoding = 'UTF-8').read())
セナディア役の鈴木みのりさん、かわいい。
リフ役の瀬戸麻沙美さん、かわいい。

2025年2月 7日 (金)

[Python]対話型実行環境でバージョンを確認する

sysモジュールを利用する

>>> import sys
>>> print(sys.version)
3.9.16 (main, Mar 8 2023, 10:39:24) [MSC v.1916 64 bit (AMD64)

 

無料ブログはココログ

■■

■■■