LoginSignup
2
2

More than 3 years have passed since last update.

100日後にエンジニアになるキミ - 45日目 - データ - ファイルの形式について

Posted at

本日はファイルについてのお話です。

昨日までのはこちら

100日後にエンジニアになるキミ - 42日目 - クラウド - クラウドサービスについて

100日後にエンジニアになるキミ - 36日目 - データベース - データベースについて

100日後にエンジニアになるキミ - 24日目 - Python - Python言語の基礎1

100日後にエンジニアになるキミ - 18日目 - Javascript - JavaScriptの基礎1

100日後にエンジニアになるキミ - 14日目 - CSS - CSSの基礎1

100日後にエンジニアになるキミ - 6日目 - HTML - HTMLの基礎1

ファイル形式

ファイル形式はコンピュータ上のデータをどのように扱うかを定めた規約のことです。
ファイルフォーマットとも言っています。

ファイル形式は下記のようなものがあります。

カテゴリ ファイル形式 拡張子
ドキュメント テキスト .txt
ドキュメント HTML .html
データ記述 CSV .csv
データ記述 TSV .tsv
データ記述 XML .xml
データ記述 JSON .json
データ記述 YAML .yml
データ記述 CSS .css
オフィス関連 PDF .pdf
オフィス関連 エクセル .xlsx , .xls
オフィス関連 ワード .docx , .doc
オフィス関連 パワーポイント .pptx , .ppt
画像 JPEG .jpg
画像 PNG .png
画像 GIF .gif
画像 SVG .svg
音声 MP3 .mp3
音声 AAC .aac
音声 WAV .wav
音声 AIFF .aiff
動画 AVI .avi
動画 MP4 .mp4
動画 MOV .mov
圧縮 tar .tar
圧縮 ZIP .zip
圧縮 gzip .gz
そのほか 実行ファイル .exe
そのほか イメージ .dmg
そのほか インストーラ .pkg

上記のものは様々なソフトウェアで使用できると思います。

ここに記したものは一部です。
ソフトウェアにより、独自の拡張子がつくことがあります。

その場合、その拡張子のファイルは専用のアプリケーションでしか
開くことができないことがよくあります。

文字コード

ファイルを確認する上で重要な点として文字コードが挙げられます。

文字コードはコンピュータ上で文字を利用する目的で各文字に割り当てられるバイト表現
もしくはバイト表現と文字の体系のことを指して「文字コード」と呼ばれます。

よく用いられている文字コード
UTF-8
Shift-JIS
EUC-JP
などがありますが、ファイルを保存する際に文字コードを指定して保存できます。

WindowsPCではソフトウェアの標準がShift-JISであることが多く
MacOSで作成されたものはUTF-8であることが多いです。

そのため、想定と違う文字コードで保存されたファイルを開こうとすると
文字が化けて出力されます。

その際には読み込みや書き込み時の文字コードを見直して
際読み込みなどを行えば解消されることがあります。

ドキュメント形式

主なドキュメント形式のファイルとしてテキストHTMLがあります。

テキストは記述形式に決まりがなくルールは特にありません。
テキストエディターと呼ばれる類のソフトウェアであればなんでも開くことができます。
気をつける点としては文字コードくらいかと思います。

HTMLはブラウザーで開いた時とテキストエディターで開いた時の挙動が変わります。
HTMLのコードを修正したい場合はテキストエディター
コードの表示結果をみたい場合はブラウザーで開きましょう。

データ記述形式

主にデータとして扱われる形式のファイルの形式です。

CSV(Comma-Separated Values)
,カンマで区切られた形式のファイル形式です。
縦、横で数が揃うような表形式のファイルになっています。

1行目は通常はヘッダー行として扱われ表頭としてのデータが書き込まれていることが多いです。
その場合、データ行は2行目以降になります。

注意点として、,カンマをデータに含む場合は"で囲まれている場合があります。
,は通常、区切りの文字として扱われるため、データとしての,
囲み文字で囲んでおかないとデータの列数などがずれてしまうことになります。

データを書き込む際や、読み込みをする際には気をつけましょう。

num,name,category
1,aaa,vz
2,bbb,cc

TSV(TAB-Separated Values)
CSVは,カンマ区切りでしたが、TAB文字区切りになるとTSVファイルになります。
違いは,TABになっている事くらいです。

データの中には,を普通に埋め込みすることもできるため、CSVと区別して使われます。

num    name    category
1    aaa    vz
2    bbb    cc

XML(Extensible Markup Language)
マークアップ言語で書かれたデータ形式です。

HTMLのようにタグを用いて書かれているのが特徴です。
タグによる階層構造になっているので、読み込みや書き込みを工夫する必要があります。

<レシピ 名前="パン" 準備時間="5分" 調理時間="3時間">
   <料理>基本的なパン</料理>
   <材料 量='3' 単位='カップ'>小麦粉</材料>
   <材料 量='0.25' 単位='オンス'>イースト</材料>
   <材料 量='1.5' 単位='カップ' 状態="温かい"></材料>
   <材料 量="1" 単位="ティースプーン">食塩</材料>
   <要領>
     <手順>全ての材料を一緒にして混ぜます。</手順>
     <手順>十分にこねます。</手順>
     <手順>布で覆い、暖かい部屋で1時間そのままにしておきます。</手順>
     <手順>もう一度こねます。</手順>
     <手順>パン焼きの容器に入れます</手順>
     <手順>布で覆い、暖かい部屋で1時間そのままにしておきます。</手順>
     <手順>オーブンに入れて温度を180℃にして30分間焼きます。</手順>
   </要領>
 </レシピ>

JSON(JavaScript Object Notation)
軽量なテキストベースのデータ交換用フォーマットでありプログラミング言語を問わず利用できます。

辞書型の構造になっており
{名前1:値1,名前2:値2,名前3:値3}
というような形式になっています。

配列などと組み合わせて複雑な構造体系にすることも可能です。


{
    "キー":"データ",
    "キー":[配列データ], 
    "配列の中に構造":[
        {
            "項目1":{
                "前菜":"サラダ",
                "メインディッシュ":"肉"
            }
        },
        {
            "項目2":{
                "前菜":"サラダ",
                "メインディッシュ":"きのこ"
            }
        }
    ]
}

YAML
概念的にはXMLと非常に似ていますが、コンフィグファイルの形式としてよく用いられるファイル形式です。

辞書や配列、入れ子など様々な構造を書き込みできます。

- red
- blue
- # 入れ子
  - orange
  - pink
- green

meta:
  title : title text
  description : description text

- { name: narusekokomi , age: 28 }
- { name: ueharaai     , age: 29 }

CSS(Cascading Style Sheets)

HTMLのスタイルを記述するための形式です。
HTMLと組み合わせて用いられることがほとんどです。

中身はCSSの書き方のルールに併せて記述されます。

h1 {
    padding:20px 0px 0px 20px;
    font-family:Arial, Helvetica, sans-serif;
}

オフィス関連のファイル形式

オフィス関連でよく用いられるものは4つ
PDF
エクセル
ワード
パワーポイント
です。

基本的に作成は専用のソフトウェアでの作成になりますが
読み込みは様々なソフトウェアで対応している場合があります。

エクセル,ワード,パワーポイントからPDFを作成できますが
その逆は難しいです。

Python言語であればこの形式のファイルの読み書きを行うことができるので
レポート処理などを自動化したければPythonがオススメです。

100日後にエンジニアになるキミ - 24日目 - Python - Python言語の基礎1

画像のファイル形式

画像ファイルには様々な形式がありますが
よく使われるのは以下のものです。

ファイル形式 拡張子
JPEG .jpg
PNG .png
GIF .gif
SVG .svg

JPEG
主に静止画のデータとして用いられる形式です。

PNG
静止画のフォーマットですが、透過画像として保存することもできます。

GIF
静止画のフォーマットですが、静止画を組み合わせたアニメーション画像を作成することもできます。

SVG(Scalable Vector Graphics)
ベクターとも呼び、JPEGやPNGがビットマップデータなのに対し
SVGはXMLをベースにした二次元ベクターデータです。

そのため、拡大縮小しても、画像の滑らかさが保たれるという利点があります。
企業ロゴなどを作成する場合はこの形式を用いることも多いと思います。

画像データはPhotoshopなどの画像編集ソフトを用いて扱うか
プログラム言語を用いて操作、編集などが行えます。

音声のファイル形式

よく用いられている音声のファイル形式には以下のようなものがあります。

ファイル形式 拡張子
音声 MP3
音声 AAC
音声 WAVE
音声 AIFF

MP3(MPEG-1 Audio Layer-3)
音声の圧縮データファイルになります。

主に圧縮を行う際のサンプリング周波数,ビットレートによって圧縮率が変わりファイルサイズが変わります。

AAC(Advanced Audio Coding)

MP3の後継規格で、MPEG形式の動画データに含まれる音声データの標準圧縮方式の一つとして広く利用されています。

WAV(RIFF waveform Audio Format)
音声データ記述のためのフォーマットで、通常は圧縮なしの音声データとして扱われます。

サンプリング周波数,ビット数,チャンネル数から
曲の長さをかけあわせるとファイルの容量が計算できます。

サンプリングレート 44.1kHz
量子化ビット数 16bit
チャンネル数 2ch

16(bit/ch)×44.1(k/sec)×2ch=1411.2kbps
1411200(bit/秒)×60(秒)÷8(bit/Byte)=10590000Byte=10.59MB

AIFF(Audio Interchange File Format)
macOS上での音声フォーマットになります。
これも非圧縮であるため、MP3などに変換することができます。

動画のファイル形式

よく用いられるものとしては以下のようなものがあります。

カテゴリ ファイル形式 拡張子
動画 MP4 .mp4
動画 AVI .avi
動画 MOV .mov

MP4
一般的な動画ファイルの形式です。動画と言えばこの形式をさすことが多いです。
動画広告やYoutubeの動画形式もこのMP4です。

編集を行うには専用のソフトウェアが必要になってきます。
動画の再生はコーデックと呼ばれる圧縮伸張プログラムを用いて再生することができます。

再生できない場合はコーデックをインストールすれば再生できることもあるので
整備してみましょう。

動画ファイルの容量の目安は
動画のビットレート × 長さ(秒) ÷ 8(bit/byte)です。
2.5Mbps × 600秒 ÷ 8 = 187.5MB

ビットレートは動画のきめ細やかさにも関係してくるので
動画のサイズが大きすぎる場合は落としてみても良いでしょう。

AVI
Windows用の動画用ファイルフォーマットです。

MOV
Apple社のQuickTimeムービーで作成された形式の動画データファイルです。

圧縮ファイル形式

よく用いられるものとしては以下のようなものがあります。

カテゴリ ファイル形式 拡張子
圧縮 tar .tar
圧縮 ZIP .zip
圧縮 gzip .gz

tar
ファイルアーカイブのファイルフォーマットの一種です。
通常はUNIXコマンドなどで作成します。

解凍は一般的な圧縮解凍ソフトウェアで行うことができます。

ZIP
4チャンネルの番組ではないです。圧縮ファイルフォーマットの一種です。
解凍は一般的な圧縮解凍ソフトウェアで行うことができます。

複数ファイルをまとめて1つにする際にはこの形式を用いることが多いです。

gzip
圧縮ファイルフォーマットの一種ですがZIPとの違いは
圧縮されるファイルが1つであることです。

ZIPは複数ファイルをまとめて圧縮することが多いですが
gzipは伸長した際にファイルが1つであることが求められます。

まとめ

様々なファイルの形式があり、ファイルの形式によって取り扱い方も変わってきます。

データの取り扱いはプログラミングやシステム開発では
必須になってきますので、様々なデータ形式のファイルが取り扱えるように
プログラムからのファイルの取り扱いに慣れておきましょう。

君がエンジニアになるまであと55日

作者の情報

乙pyのHP:
http://www.otupy.net/

Youtube:
https://www.youtube.com/channel/UCaT7xpeq8n1G_HcJKKSOXMw

Twitter:
https://twitter.com/otupython

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2