Python 設定ファイルから値を読み込む
環境
OS: CentOS7
Python3.6.0
vagrant上にあるもの
設定ファイルから値を読み込む
Pythonの標準モジュールの中に configparser というものがあるのでそれを使う
Windowsの設定ファイルのiniによく似た形で記述されているファイルを読み込めるらしい
まず、設定ファイル
# example.conf [person] name=HanakoYamada age=20
Pythonで取得してみる
>>> import configparser >>> config = configparser.SafeConfigParser() >>> config.read("example.conf") ['example.conf'] >>> config.get("person", "name") 'HanakoYamada' >>>
1.configparserをインポート
2.SafeConfigParserという(設定ファイルを読み込むためのオブジェクト?)ものを生成
3.read()で設定ファイルを読み込む
4.get()で値の取得
こんな感じでPythonでは値の読み込みができる
参考サイト
設定ファイル (ConfigParser) - Python入門から応用までの学習サイト
13.2. ConfigParser — 設定ファイルの構文解析器 — Python 2.7.13 ドキュメント
kazuki-nagasawa.hatenablog.com
2017/3/15(水)追記
もし、設定ファイル中に "%" などの記号が入っていた場合
configparser.RawConfigparser() を使用する
参考サイト
stackoverflow.com
Java long型の変数に値を代入するときの注意点
環境
OS: Windows10
Javaでlong型に代入
// Test.java ... long num = 9223372036854; ...
Test.javaをコンパイルすると、次のようなエラーが出る
Test.java:10: エラー: 整数9223372036854が大きすぎます long num = 9223372036854;
え、longで定義してるのに何で????
ぐぐってみたらすぐに解決した
long型であることを明示しないとだめらしい
long型に代入するときには数値の最後に L を付ける
// Test2.java ... long num = 9223372036854L; ...
longだけ何でこんなことを...
豆知識程度に覚えておくことにします
参考サイト
javamania.blog25.fc2.com
Java JDBCドライバでOracleに接続
環境
OS: Windows10
Class.forName("oracle.jdbc.driver.OracleDriver"); Connection con = DriverManager.getConnection( "jdbc:oracle:thin:@127.0.0.1:1521:XE", "KADAI", "orapass" ); Statement stmt = con.createStatement();
DriverManager.getConnection()の引数
(URL, スキーマ名, パスワード)となる
- URL
@127.0.0.1:1521:XE
IPアドレス:ポート番号:データベース名
IPアドレスはデータベースのIPアドレス
ポート番号はデフォルトで"1521"らしい
データベース名はデフォルトで"XE"らしい
- スキーマ名
これはスキーマ名(ユーザー名)を指定する
今回は、"KADAI"というスキーマ名に接続している
- パスワード
パスワードを入れる
bottleを使ってみた
環境
OS: CentOS7
vagrant上にある
PythonのWebフレームワークにbottleというものがあるらしいので使ってみた
bottleの使う準備をして、サンプルコードを書いてみた
from bottle import route, run @route('/hello') def hello(): return "Hello World!" # サーバーのIPアドレスをhostの部分に記述する run(host="192.168.33.10", port=8080, debug=True)
192.168.33.10:8080/hello にアクセスしたら画面が表示された!!
簡単!!
PostgreSQL INSERT/UPDATE時に現在時刻のTIMESTAMPを入れたいとき
環境
OS: CentOS7
PostgreSQL: 9.6.1
vagrant上で動作
SQLでINSERT/UPDATEするときにその時の時刻のTIMESTAMPを入れたいときがある
[current_timestamp] を使えば一発!!
INSERT INTO m_listener (socialid, userid, username, create_at) VALUES (%s, %s, %s, current_timestamp);
CentOS7 システムタイムゾーンを設定
環境
OS: CentOS7
vagrant上にある
なぜこれをしたいのか
unix時間をタイムスタンプに変換したら、おかしな結果になったから日本時間にできないかと思い、調べてみた
解決法
timedatectlを使う
まずはリストを表示してみる
$ timedatectl list-timezones ... Asia/Tokyo ...
東京があるから、タイムゾーンを東京にしてみる
$ timedatectl set-timezone Asia/Tokyo
これでタイムゾーンが東京になった
$ timedatectl Local time: Sat 2017-03-11 11:27:17 JST Universal time: Sat 2017-03-11 02:27:17 UTC RTC time: Sat 2017-03-11 02:27:15 Time zone: Asia/Tokyo (JST, +0900) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a
参考サイト
CentOS 7 : システムのタイムゾーンを設定する : Server World
メモ
datetimeのdatetimeのfromtimestamp()を使う
8.1. datetime — 基本的な日付型および時間型 — Python 3.6.0 ドキュメント
>>> import datetime >>> unixTime = 1489200576 >>> unixTime 1489200576 >>> timeStamp = datetime.datetime.fromtimestamp(unixTime) >>> timeStamp datetime.datetime(2017, 3, 11, 11, 49, 36) >>>