フォルダ内のファイルを、ファイル作成日で昇順にソートして、ファイル名に連番を付けるプログラムを作ります。
image01.jpg、image02.jpg、image03.jpg、、、みたいにします。
データを消して飛び飛びになった番号を振り直したい時に使えます。
元のファイル名はバラバラでもかまわないので、ファイル名を統一したい時にも使えます。
ファイル名を変更する前に、変更内容を表示して、実行するか確認します。コマンドライン(ターミナル)で1度Yes/Noを聞くだけですが、一応対話型の処理です。
今回行う処理は、全て標準モジュールだけで作成しています。
Visual Studio Codeでデバッグする!:Node.js
Node.jsのデバッグ環境が欲しい!ということで調べると、Visual Studio Code(以下、VSCode)で簡単に出来ることがわかりました。
VSCodeは既にエディタとして利用しているので、早速試してみました。
同期・非同期処理で、フォルダ内のファイルを列挙する!:Node.js
↓こちらの記事で、Node.jsの環境を作成しました。
mmorley.hatenablog.com
Node.jsの使用例を見ていたら、ファイル操作が出来ることを発見!ここでのファイル操作とは、ファイルの名前変更、削除、ファイル情報の取得等です。
ブラウザ上で動く従来のJavaScriptでは出来なかったので盲点でした。個人的には、不慣れなunixコマンドよりいろいろ出来そうです。
ファイル操作に関する関数群は、Node.jsの標準モジュールに含まれています。Node.jsには使いたいライブラリをnpmで組み込んで使用する仕組みがありますが、標準モジュールは最初から組み込まれています。
標準モジュールに含まれる関数群の詳細は、公式のAPIリファレンスで確認出来ます。
ということで、今回は試しにファイル内のフォルダを列挙するプログラムを作成します。
またNode.jsのプログラムでは、同期処理、非同期処理に注意する必要があります。今回は試しにそれぞれ作ってみます。
Node.jsをMacにインストール!(Homebrew→Nodebrew→Node.js順にインストール)
<前置き>
画像から文字を読み込むOCRについて調べていたら、Tessract.js(テッサラクト・ジェイエス)というライブラリを発見しました。
なんと純粋なJavaScriptで書かれているとのこと。しかも60以上の言語を認識出来るらしいです。
さっそく手順に従ってHTMLに組み込んでみましたが、ブラウザがローカルデータへのアクセスを制限されているため失敗しました。
ブラウザにアクセス許可を与えるのは怖いなと思ったのですが、他に『Tesseract.jsをnpmでインストールして、requireして使う方法』が書いてありました。出てきた用語だいたいわかりません。
npm?、require?、どういうこと?と思って調べると、まずはNode.jsを導入する必要があることがわかりました。
Node.jsは、従来のHTMLに組み込むJavaScriptとは別物でしたが、調べるとBrowserifyという従来のJavaScriptと結びつける方法もあるようなので、中々おもしろそうです。
ということで、名前は知っていたものの横目で見るだけだったNode.jsをこれを機に導入することにしました。
<ここから本題>
調べたところNode.jsを直接インストールするより、Homebrew→Nodebrew→Node.jsの順にインストールするのが後々を良いようです。
その理由となるそれぞれの役割について、簡単にですがまとめました。
また、YosemiteやEl Capitanで、Homebrew経由でインストールするとNodebrewがうまく動かないという記事がありましたが、私の環境(El Capitan)では問題は起きていません。
実際にインストールした手順をまとめました。
インストール後に、Node.jsで実際に、HelloWorldプログラムとTessract.jsを使った文字認識を実行しました。
年賀はがきの宛名印刷を作る!:Googleスプレッドシート
Google スプレッドシートで宛名印刷を作ります。
記事にあるApps Scriptのコードをコピペして実行すると、宛名印刷関連のメニューがスプレッドシートに追加されます。
追加されたメニューにより、住所録シートのデータから、
なお実際に使うまでには、はがきに対する印刷位置の調整する必要があります。また、文字数の制限等の入力ルールがあります。
そして、スプレッドシートの仕様でフォントが自由に選べないといった制約があります。
ある程度、調整を楽しめる人向けの記事になります。 続きを読む