Docly Child

テキストファイルの読み込み

1452 views

この記事では、取得したテキストファイル(.txt)の中身を読み取る設定方法を紹介します。

【できるようになること】

  • ReadTextアクションを使ってファイルの内容を読み込む

ReadTextを利用する場面

・ワークフロー上で、テキストファイルの中身をテキストとして利用することができます
・CSVファイルの中身をテキストとして取得することも可能です

 ワークフローの設定例

下記手順にてワークフローを設定します。

テキストファイルから文字を読み込むときは「ReadText」アクションを利用します。

  • 「ファイル」パラメータに、GetFileアクションのアウトプットを紐つけます。

テキストファイルから読み込んだ文字列が文字化けする場合は、「ReadText」アクションに読み込む文字コードを指定することができます。

  • 「ReadText」アクション、中央下部の「詳細設定を開閉」をクリックします。
  • 「ファイルの文字エンコーディング」パラメータに文字コードを設定します。

 

[代表的な文字コード]

utf-8(デフォルト設定)/Shift_JIS/utf16

サポートしている文字コード一覧https://docs.roboticcrowd.com/actions/text#readtext

 

# ファイルを取得
+get_file_1:
  action>: GetFile
  filename: 1PEf_KgT8_3Gs_pVyaDYNuYZkHPemJpEm
  provider: 'GoogleDriveのコネクションをご指定ください'
  meta:
    display:

# ファイルからテキストを読み込む
+read_text_1:
  action>: ReadText
  filename: +get_file_1
  encoding: 'utf-8'

 拡張子が.txtではないファイルからテキストを読み取る

拡張子が.txtではないファイルの中には、ReadTextアクションで読み取りが可能なものも存在します。

以下より、例を紹介します。

ReadTextアクションにcsvファイルを指定すると、中身がテキストとして出力されます。

RenameFileアクションによる拡張子変更は、任意となります。

  • RenameFileを設定します。
  • 「ファイル名を変更」に、prn等のファイル型アウトプットを指定します。
  • 「新しいファイル名」を、「任意のファイル名.txt」とします。
  • ReadTextを設定し、RenameFileのアウトプットを指定します。

.docxは実質的にzipファイルであるため、DecompressFileアクションなどを使用した形でのテキスト抽出が可能です。

もしdocxから文字のみを抽出する場合は、以下ワークフローをカスタムアクション化してご利用ください。
パラメータは、ストレージ系サービスのプロバイダIDファイルID/ファイルパスとなります。

# ファイルを取得
+get_docx_1:
  action>: GetFile
  provider: ${providerId}
  filename: ${fileId}
  meta:
    display: null

# ファイル名を変更
+rename_file_docxToZip:
  action>: RenameFile
  filename: +get_docx_1
  save_as: 'hoge.zip'

# ファイルを展開する
+decompress_docx_1:
  action>: DecompressFile
  file: +rename_file_docxToZip

# リスト内を検索
+search_item_from_list_docXML:
  action>: SearchItemFromList
  list: +decompress_docx_1
  query: 'document.xml'

# リストから要素を取得
+get_item_from_list_docXMLFile:
  action>: GetItemFromList
  list: +search_item_from_list_docXML
  index: '0'

# ファイルの文字コードを変換
+change_file_encoding_utf8:
  action>: ChangeFileEncoding
  filename: +get_item_from_list_docXMLFile
  save_as: ''
  target_encoding: utf8
  original_encoding: 'auto-detect'

# ファイルからテキストを読み込む
+read_docXML:
  action>: ReadText
  filename: +change_file_encoding_utf8
  encoding: 'utf-8'

# 変数に保存
+store_value_docXML:
  action>: StoreValue
  key: xml
  value: +read_docXML

# スクリプトを実行 xmlタグを置換
+run_script_doxXML:
  action>: RunScript
  code: "return xml\n  .replace(/<\\/w:r>/g, \"\\n\")\n  .replace(/<(\".*?\"|'.*?'|[^'\"])*?>/g, \"\")\n  .replace(\"\\n\", \"\"); //最初に1つ余計な改行が入るため置換\n"

なお、.docxからのテキストの抽出はアクションで可能ですが、.docファイルについては、上記のアクションでテキストを抽出することは不可能となります。.docファイルの場合は、ブラウザ系アクションで拡張子変更サービスを提供するWebサイトにアクセスし、ファイルをアップロードしてから拡張子変換後のファイルをダウンロードする必要があります。

ConvertPDFToTextアクションをご使用ください。
参考:PDFファイルからテキストを抽出

<ReadText>ファイルからテキストを読み込む

このページは役に立ちましたか?