【Python入門】基本の復習 その2

こんにちは。今回もPythonの基本的な使い方で曖昧に理解している事を復習し、備忘録として残します。

環境:Mac、Python3

Python:ファイルに書き込む


outputディレクトリーにあるoutput.txtへ書き込みます。

Pythonの関数open()に’w’をつけると書き込むためにファイルを開きます。

output.txtを開くと、us-stocksと記録されています。

ファイルを開くモードの種類

  • r: 読み込み専用。省略可能。
  • w: 書き込み時に指定。ファイルが存在しない場合は新しいファイルが作られる。
  • x: ファイルが存在しない場合のみ、ファイルを作り書き込む。ファイルが存在する場合は何もしない。
  • a: 末尾に書き込み。ファイルが存在しない場合はファイルを作成して書き込む。



for文を利用してファイルに書き込む


リストの項目をファイルに書き込みます。

書き込む際に、改行させます。

 

Python:datetimeモジュール


datetimeモジュールのdatetimeクラスを呼び出します。
Pythonの関数now()メソッドを使用します。


次のようにその時の日付と時間が返されます。

2019-01-14 16:23:17.517334

次の種類を覚えておくと良いでしょう。

  • date: 年月日の日付
  • time: 時分秒とマイクロミリ秒の時刻
  • datetime: 日付、時刻の両方
  • timedelta: 日付、時刻の間隔

 

年月日を表示させる



次のように表示されます。

2019年
1月
14日

 

時間を表示させます。



次のように表示されます。

16時37分52秒




指定した日付を作成する


2019年1月1日という固定した日付を持つ変数を作成します。


このように出力されました。

2019-01-01 00:00:00

 

日付を文字列に変える


Pythonの関数strftimeを使用します。

次の種類を覚えておくと良いでしょう。

  • %Y : 西暦(4桁)
  • %m : 0埋めした月
  • %d : 0埋めした日にち
  • %H : 0埋めした時 (24時間表記)
  • %M : 0埋めした分
  • %S : 0埋めした秒

 

文字列を日付に変換する


Pythonの関数datetime.strptime(時刻が入った変数, フォーマット形式)を使用してdatetime型の日付に変換します。


次のように変換されました。

2019-01-01 00:00:00

str_gantanとgantanの表記を合わせる必要があります。
この場合は、年月日にします。



timedelta


timedeltaは、日付の差分を割出してくれます。
大晦日の100日前を割り出してみました。


次のように答えが返ってきました。

2019-09-22

因みに’%Y-%m-%d’を’%Y年%m月%d日’にするとエラーが発生します。

 

文字の日付をdate型にして計算し、文字列に戻す


文字列’2019-04-01’の10日後をtimedeltaを使用して計算します。その後printするために文字列型へ戻します。


このように出力されました。

2019-04-11

 

ファイルから日付データを読み込み、表示形式を変更する


date.txtには次のデータが存在します。このデータの表示形式を2019/01/01といったスラッシュ区切りにします。

2019-01-01
2019-01-02
2019-01-03


次のように変換されました。

2019/01/01
2019/01/02
2019/01/03 

 

日時をファイルへ書き込む


現在日時をoutput/date.logファイルへ書き込みます。


次のように書き込まれました。

2019/01/17 22:11



現在時刻に合わせて書き込む内容を変更する


日本のマーケット開場時間である午前9時から午後3時の間の場合は、マーケットオープンとログを残し、それ以外の時間の場合はマーケットクローズというログを残してみます。


次のように書き込まれました。

2019/01/17 22:27 | マーケットクローズ 

いかがでしたでしょうか?
プログラムを書く時、どう書けば良いのかというイメージが湧くようになってきたのではないでしょうか?

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください