プログラミング言語「Python」に関する備忘録です。
インストール
https://www.python.org/ の「Downloads」→「Windows」から「Windows x86-64 executable installer」をダウンロードしました。
以下の画面の一番下にある「Add Python 3.7 to PATH」をチェック後に「Install Now」をクリックしてインストールします。
Windowsの場合、通常は画面左下にある検索ボックスに「cmd」と入力してコマンドプロンプトを開き、バージョンを確認します。
以下のように、「python –version」でバージョンが確認できます。
>python --version Python 3.7.3
「Pythonは…認識されていません」と表示される場合、「Add Python 3.7 to PATH」のチェックを入れ忘れている可能性が高いです。ダウンロードしたexecutable installerをダブルクリックして、アンインストールと再起動を行い、再インストールしましょう。
Xreaを利用する方法もあるが、バージョンを確認しよう
無料レンタルサーバ「Xrea」でPythonが使えるので、Xreaを使用する方法もあります。
コマンド作業はSSH接続にて行います。
https://(サーバ名).xrea.com/jp/admin.cgi
にアクセス後、「ホスト情報登録」に移動し、[SSH登録]をクリックします。反映には5~10分程度掛かります。
「python」コマンドでバージョン2、「python3」コマンドでバージョン3が使えます。
2019年7月14日時点のXreaのPython2のバージョンは「2.7.5」、Python3のバージョンは「3.6.8」、OSは「CentOS 7.5.1804」です。
$ python --version Python 2.7.5 $ python3 --version Python 3.6.8 $ cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core)
ユーザのロケールを「ja_JP.UTF-8」に変更します。
$ export LANG=ja_JP.UTF-8
日本語の設定
Pythonで日本語を扱う場合は、UTF-8に変更します。Windowsの場合、コマンドプロンプト上で、「chcp 65001」を実行します。
C:\python>chcp 65001 Active code page: 65001 C:\python>
また、ファイルの保存形式もUTF-8とします。
Hello Worldの出力
まずは「Hello World」を出力しましょう。
今回は「c:\python\test001.py」から出力しました。「test001.py」には以下のように記述します。
print("Hello, World!")
保存後、コマンドプロンプトで「python」フォルダに移動し、「test001.py」を実行します。
>cd c:\python c:\python>dir 2019/06/13 15:38 22 test001.py c:\python>python test001.py Hello, world!
時刻の表示
Pythonで日時を扱う場合は、datetimeモジュールを使います。現在時刻の取得は、datetime.datetime.now()関数を使います。日時を文字列に変換するには、str関数を使います。コマンドプロンプト上でファイルの内容を表示するにはtypeコマンドを使います。(Linuxはcat)
C:\python>type test001.py import datetime datetime = datetime.datetime.now() print("Hello, world!") print("現在時刻: " + str(datetime)) C:\python>python test001.py Hello, world! 現在時刻: 2019-06-18 13:45:09.267429
日付入りファイルの作成と書き込み
上書きは「w」、追記は「a」、改行は「\n」、2桁の年は「%y」です。
import datetime datetime = datetime.datetime.now() print("Hello, world!") print("現在時刻: " + str(datetime)) file001 = open("test_{0:%Y%m%d}.txt".format(datetime), "w") file001.write("テスト1です。") file001.write("テスト2です。\n") file001.write("テスト3です。\n") file001.close() file002 = open("test_{0:%Y%m%d%H%M}.txt".format(datetime), "a") file002.write("追記テスト1です。") file002.write("追記テスト2です。\n") file002.write("追記テスト3です。\n") file002.close()
<注意>作成されたファイルはシフトJISなので、typeコマンドでファイルを開く際はutf-8に変更する必要があります。
input関数による対話的な文字入力
your_name = input("お名前: ") your_email = input("メールアドレス: ") file001 = open("test002.txt", "a") file001.write("お名前: " + your_name + ", メールアドレス: " + your_email + "\n") file001.close
for文とrange関数
int()で整数に変換、str()で数値に変換、for文では入力値よりも1小さい値までの合計しか計算されないので、入力値までの合計を出力する場合は1加算(2行目)
a = input("数字を入力してください: ") b = int(a) + 1 d = sum(c for c in range(b)) print("0から入力値までの合計: " + str(d))
連番ファイルの一括作成
a = input("開始: ") b = input("終了: ") c = input("間隔: ") d = input("桁数: ") e = int(b) + 1 for f in range(int(a), e, int(c)): file001 = str(f).zfill(int(d)) + ".txt" with open(file001, "a") as file002: file002.write("テストです" + "\n")