Python 初心者のつまづき

Pythonの学習を初めて少し経ちましたが、やはり初心者なのでいろいろとつまづきました。

他の方の参考になれば良いと思い自分がつまづいた点について書きたいと思います。

CSVファイルの文字コード

これまであまり考えてこなかったのですが、CSVファイルの構成要素に「文字コード」というものがあります。

例えばWindowsのPCの「メモ帳」で次のような内容のファイルを作成して「test.txt」というファイル名で保存したとします。

そして次のコードを書いて実行すると、

import os
with open('test.txt') as f:
    areas=f.readlines()
print(areas)

次のエラーメッセージが表示されます。

UnicodeDecodeError: 'cp932' codec can't decode byte 0x83 in position 62: illegal multibyte sequence

WindowsのPCで文字コードが「utf-8」であるテキストファイルを読み込もうとするとこのメッセージが出るようです。(Windowsの「メモ帳」の画面の右下によく見ると「UTF-8」と出ています。)

Windowsの環境ではデフォルトで「shift_jis」または「cp932」の文字コードのテキストファイルを読み込む設定になっているようなので、文字コードが「utf-8」であるテキストファイルを読み込む場合には次のように

import os
with open('test_utf8.txt',encoding="utf_8") as f:
    areas=f.readlines()
print(areas)

「encoding = ‘utf-8’」と書かなければなりません。

ubuntuのパソコンでPythonを実行する場合には反対にデフォルトで「utf-8」の文字コードのテキストファイルを読み込む設定になっているようなので、文字コードが「cp932」であるテキストファイルを読み込む場合には次のように

import os
with open('area_cp932.txt',encoding = 'cp932') as f:
    areas=f.readlines()
print(areas)

のように記述しなければなりません。

pipでのライブラリのインストール

ubuntuのパソコンにPythonの3.8.2をインストールして使っていましたが、「pip install」 でライブラリのopenpyxlをインストールしたはずなのにimportできませんでした。

調べてみると、ubuntuのパソコンには最初からPythonの2.7がインストールされているようです。

インストールされている場所は、/usr/local/libです。このフォルダの下にPythonの各バージョンのフォルダが作成されていました。

普通にpip installを行うと、Python2.7の方にインストールされてしまうようでした。

そこでpip3 install(pipの代わりにpip3とする)を行うと、Python3.8の方にインストールされ、importができるようになりました。

IDLEのバージョン

ubuntuのパソコンでIDLEを使用していたときに、何かは忘れましたが何かうまく動作しないことがあり、よく見てみるとshellの画面のタイトルが「Python 3.6.9 Shell」となっていました。

試しにコンソール画面で「idle」の代わりに「idle3.8」と入力してみると、「Python 3.8.2 Shell」の画面が起動しました。

「idle3.8」でなく、「idle3」と入力すれば「Python 3.8.2 Shell」の画面が起動するようです。

タイトルとURLをコピーしました