Pythonでテキストファイルに追加で書き込みをする基本中の基本


write

photo credit: Alexandra E Rust Writing via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

非エンジニアの初心者向けにPythonでクリップボードを操作する便利ツールの作り方をお伝えしています。

前回の記事はコチラ。

Pythonでクリップボードの内容をExcelに貼り付けられるように変換するスクリプト
非エンジニアでも簡単にできるPythonによるクリップボードを使ったツールについてお伝えしています。今回はPythonでクリップボードの内容をExcelシートに表形式で貼り付けられるように変換するツールです。

クリップボードの内容をExcelに貼り付けられるような表形式に変換する方法でした。

さて、今回ですがこのツールをパワーアップしていきます。

というのも、Webページから何度もコピーをする必要があるとしたら、毎回Excelに貼り付けるよりも、後でまとめて開いたほうが楽ちんなときも多いはず。

ということで、今回はPythonでテキストファイルに書き込みをする方法をお伝えします。

では、行ってみましょう!

スポンサーリンク

前回のおさらい

前回作成したスクリプトはコチラでした。

import pyperclip
lines =pyperclip.paste().split('\r\n')
text = ''
for i in range(0,len(lines),2):
    text = '{0}{1}\t{2}\n'.format(text,lines[i],lines[i+1])
pyperclip.copy(text)

これは、以下のMDNのJavaScriptのリファレンスからメソッド一覧を取得する用で、いわゆるWebページ上で定義リストになっているものを、Excelで表形式に貼り付けられるように変換するというものです。

String – JavaScript | MDN

この出力先がpyperclip.copy関数、つまりクリップボードだったのですが、それをテキストファイルにしてみようではないか、というのが今回のお題となります。

ファイルにテキストを追加で書き込む

では、いよいよPythonでファイルの書き込みをする方法を解説していきます。

追記書き込みモードでファイルを開く

まず、書き込む対象となるファイルを開く必要がありますね。読み込みをするときと同様、open関数を使います。

open(file, mode)

modeに設定する主なものは以下の通りです。

  • r:読み取り専用
  • w:書き込み用(既存のファイルを上書きで書き直す)
  • a:追加書き込み用(既存のファイルの末尾に追加で書き込む)

modeは省略すると読み取り専用になりますが、今回は追加で書き込みをしたいので’a’を設定します。なお、’a’や’w’のときに対象のファイルが存在しないときは、自動でファイルを生成してくれます。便利っす。

また、with文を使うとclolseメソッドを書かずに楽ができるんでしたね。

Pythonで開いたファイルのクローズを忘れやすい人のためのwith文の使い方
初心者のためのPythonプログラミングシリーズ、フォルダ作成ツールを作るのを題材に基本中の基本についてお伝えしています。今回はPythonでwith文を使って安全にファイルを開いて閉じる方法です。

ですから、例えば「mehotds.txt」というファイルに順次追記をしていくのであれば、その部分は以下のように書けばよいでしょう。

with open('methods.txt','a') as f:
    # 処理

writeメソッドでファイルにテキストを追記する

開いたファイルにテキストを書き込むにはwriteメソッドを使います。

ファイルオブジェクト.write(テキスト)

今回の場合、ファイルオブジェクトは変数fに格納されていますから、この部分の処理としてはこうなりますね。

f.write(text)

クリップボードを表形式に変換してファイルへ追記するスクリプト

以上を踏まえると、スクリプトは以下のように作ることができます。

import pyperclip
lines =pyperclip.paste().split('\r\n')
text = ''
for i in range(0,len(lines),2):
    text = '{0}{1}\t{2}\n'.format(text,lines[i],lines[i+1])
with open('methods.txt','a') as f:
    f.write(text)

では、実行してみましょうか。MDNのページでいくつかのメソッドについて範囲選択してコピー、そしてこのスクリプトを実行します。

すると、methods.txtの内容は以下のようになりました。

Pythonで書き込んだテキストファイル

では、もう一回やってみましょうか。別の範囲についてコピーして実行してみます。

Pythonで追記書き込みしたテキストファイル

よさそうですね。

では、このファイルの内容を全選択 Ctrl + A からの コピー Ctrl + C して、Excelシートに貼り付けてみましょうか。

Pythonで取得・整形したデータをExcelに貼り付けた

うまく貼り付けることができました。

まとめ

Pythonでテキストファイルに追加で書き込みをする基本中の基本の方法についてお伝えしました。

open関数のmodeを追記書き込み’a’にすること、writeメソッドを使うこと、いずれも難しくはないですね。

今回作ったツールを活用すれば、Webページで飛び飛びになりながらも、随時テキストファイルに蓄積して、後でまとめてExcelに貼り付けといった作業の流れが実現できますね。

便利そうです。

さて、次回はせっかくなのでcsvファイルにも出力してみましょう。

どうぞお楽しみに!

連載目次:Pythonで簡単作成!クリップボードを使ったツールを作ろう

一般ビジネスマンの非エンジニア向けにPythonのpyperclipモジュールによる、クリップボードを使った簡単便利ツールの作り方をお伝えします。Webページやテキストファイルからコピーしたテキストを加工して貼り付ける…といったことが可能になります。超便利です。
  1. Pythonでクリップボードを操作!pyperclipを使ってコピーしたデータを取得する
  2. 初心者でも簡単!Pythonでデータを加工してクリップボードにコピーをする方法
  3. Pythonでリストのforループでインデックスと要素の両方を取り出して繰り返す方法
  4. Pythonで文字列の中に変数などの値を埋め込むformatメソッドの使い方
  5. Pythonでクリップボードの内容をExcelに貼り付けられるように変換するスクリプト
  6. Pythonでテキストファイルに追加で書き込みをする基本中の基本
  7. Pythonでcsvファイルにデータを書き込みをする基本中の基本

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