tech

勉強のために、各社の社説を収集してデータベース化する その6

今回は前回に構想立てたテキストからDBへの書き込みを行うところを先に作っていきます。
テキストファイルの作成は順番が前後しますが、次回以降に投稿しようと思います。

とりあえずコード

f = open("test-article.txt", 'r')

date_str = f.readline()
date_str = date_str.replace("\n", "")
newspaper_c_str = f.readline()
newspaper_c_str = newspaper_c_str.replace("\n", "")
title_str = f.readline()
title_str = title_str.replace("\n", "")

article_str = ""
while True:
    sentence_str = f.readline()

    if sentence_str == "":
        break
    else:
        article_str += sentence_str

#database insert
print(date_str)
print(newspaper_c_str)
print(title_str)
print(article_str)

動作説明

あらかじめお断りしておきます。
最後のprint文からわかるように作りかけです。
これらのprint文を後からDBのinsert(レコード作成)を行う記述に書き換える予定です。

さて、本体説明です。
内容はごくごく簡単です。
まずf = open("test-article.txt", 'r')でファイルを読み込みます。このとき読み込むファイル名は社説を一時的に書き出したテキストファイルにします。
そのあとは、f.readline()で、一行ずつ読み込みを実施します。
一時的に社説を書きだしたテキストファイルtest-article.txtは、前回の投稿の通り、1行目が日付、2行目が新聞社名、3行目が記事のタイトル、44行目以降が本文になります。なので、readlineを順に実行すればその通りにDB格納用の変数に内容を保持できます。
replace("\n", "")は、末尾の改行コードを削除するために実行しています。
readlineの実行が終われば、それぞれの変数に値が格納されているはずなので、あとはそれらをDBに入力すれば完了になります。

あとがき

今回は取り留めて投稿するほどの内容でもありませんでしたが、制作過程の記録として残したいと思います。
中間のファイルを作成することは結構好きで書いているのですが、並列プログラムなど少し複雑なことをやり始めると破綻するので、あくまでお試しで実行内容を把握する目的で利用することがよいと思います。

-tech
-