質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.54%

  • Python

    7891questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • OS

    207questions

    OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

ベースネームの拡張子を除いた部分をどう呼んだらよいですか

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 3
  • VIEW 545

qwdcf_mag

score 36

 疑問

test.txt というファイルがあるとすると、
この全体を basename と呼ぶと思います。

では、この「test」の部分は普通どのように呼んだらいいのでしょうか。

自分なりに調べてみたところ、以下のような情報がありました。

 その1 file-stem?

https://www.npmjs.com/package/file-stem

file-stem
=Basename without extension.

となっています。

(pathlibのインスタンス変数に「stem」というのがあることから検索で知りました)

 その2 file root ?

https://stackoverflow.com/questions/2235173/file-name-path-name-base-name-naming-standard-for-pieces-of-a-path

Vim calls it file root (:help filename-modifiers)
となっています。

ただ、普段あまり耳にしたことがないため、これが普通なのかどうか。
定番はどうなっているのかなど、よく分かりません。

 質問

そこで質問なのですが、
1 上記の 「test」の部分を、エンジニアの方は普通どのように呼んでいるのでしょうか。
2 「stem」というのは、なぜ、「stem」というのでしょう(何かの略でしょうか)

よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

checkベストアンサー

+3

「どう呼ぶか」と言う質問に対して、いちエンジニアとしての私の回答は「拡張子無しのファイル名」でしょうか。

それですと、先の回答者さんらが書かれている「filename without extension」と同じと言えます。
拡張子のようにそのものを指している単語は特に無いとの認識なので、その時々の話に合わせて変えることもあります。OSやプログラミング言語に応じて適当に合わせる、と言う意味で先の回答と同じです。


以下、回答にあたって「stem」について調べてみたことです

この質問、実は私もbasenameコマンドを使う時に「正しくは何と呼ぶのだろう」といつも思っていましたし、仕様書を書くような時に少し困ってもいました。が、不正確だと指摘されたことは無かったのでそのままにしていました。

本質問で「stem」と言う聞き慣れない単語が出てきた為、調べてみました。どうも頻度は少ないものの、英語圏ではファイル名の一部を表す単語として時折出てくるもののように思います。

こちら、プログラムも書かれる、生物、医学系の研究者の方のブログ記事です。短い記事ですが、個人的に興味深く読ませてもらいました。
What's in a (file)name?

言語学に絡めてstem of word=単語の幹=基本となる部分がある、と述べられています。

 "fishing", "fished", and "fisher" would reduce to "fish". You might also talk about the "base" or "root" of a word.

ファイル名もそうで、例えばhogeと言う幹となるデータ(≒モデル?)があるとして、hoge.txt, hoge.csv, hoge.xlsと、実際のデータの視せ方で変化する、とのように理解したら良いでしょうか。ちなみにこの方自身の結論としては、「stem」を使われるようです。

For my own part, I'll be using "stem".

上の記事で参照されていますが、wikipediaの記事です。
Filename

dividing the filename into two parts: a base name or stem and an extension or suffix

と書かれています。「base name」か「stem」です。wikipediaに書かれている内容が必ずしも正しいとは言えないかもしれませんが、参考になります。

先の回答者、KSwordOfHasteさんも少し述べられていますが、C++ のstd::experimental::filesystem::pathのメンバー関数はstemです。
std::experimental::filesystem::path::stem

stackoverflowでの質問。単語として「stem」を使っています。
How to get the stem of a filename from a path?

2002年刊行の書籍。194,195ページに記載のプログラミング例で、拡張子無しのファイル名を納める変数を「Stem」と名付けています。
.NET for Visual FoxPro Developers

実務において、拡張子無しのファイル名を「stem」と呼ぶのは(特に)日本ではかなわないと思うのですが、英語圏では使われるケースがある、くらいに理解しておいて損は無さそうです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/17 07:53

    掘り下げた検討ありがとうございます!

    たしかに調べてみるとこういうのがありました(大辞林)
    語根と同じ意味あいみたいですね


    ごかん【語幹】
    ①国文法で、用言の活用語尾を取り除いた変化しない部分。「歩く」「速い」の「ある」「はや」など。〔「着る」「来る」など、語によっては語幹と語尾がはっきり分けられないものもある〕⇔語尾。
    ②印欧語などで、屈折する語の変化しない部分。語根。

    キャンセル

  • 2018/04/17 09:34

    コメントと「語幹」の情報、どうもありがとうございます。本件、思った以上に深いものがあったので勉強になりました。

    キャンセル

+3

stemは幹のことではないでしょうか。

numpy.py
numpy.pyc
...etc.

でnumpyがその本質的な意味(機能)のことを表していて拡張子は表現方法(形式)を表しているという感覚で。

ちなみに自分は普段幹とかstemという単語を使ったことがなくfilename without extensionとかいっちゃいそうです。単に知らなかったからです。

C++やpythonなどのいくつかのライブラリーで使われているということはその単語が不自然には感じないだろう根拠になると思います。なので機会があったら使ってもいいかなと思いました。ただ使っている言語やライブラリーで使われている単語が別にあればそちらを使うと思います。どっちでも意味が通じるでしょうけど合わせるにこしたことはないからです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/17 07:55

    ありがとうございます! あまり呼び方が定まらないということも分かって勉強になりました。状況にあわせて使いたいと思います。

    キャンセル

+3

os.pathの説明では次のようになっていますね。

os.path.splitext(path)
Split the pathname path into a pair (root, ext) such that root + ext == path, ...

ところで、perlにはパス名をディレクトリ・拡張子・それ以外に分解する関数を提供するFile::Basenameというライブラリがあるのですが、その公式ドキュメントでは次のようになっています。

File::Basename - Parse file paths into directory, filename and suffix.

suffixにあたる部分はユーザが自分で設定しなくてはなりません。設定しないとディレクトリ部分以外がまるごとfilenameとして扱われる仕様です。

思うに、たとえばhoge.tar.gzというファイルでfilenameにあたる部分はどこまでかで解釈にブレが生じそうな気がします。そもそも「拡張子」の使われ方がOSによって違うし、用語にも慣習の違いがありそうな気がします。

なので、どの用語を使うにしろその定義が自動的に全読者に共有されていると考えるべきではないでしょう。お示しのテキストがそうなっているように事前にその定義を明示しておくか、そうでなければKSwordOfHasteさんがいうように説明的な言い回しを採用するか、いずれかを検討するのがよさそうに思えます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/17 07:57

    ありがとうございます! 拡張子の範囲自体確かに明確でないのかもしれないですね。勉強になりました。

    キャンセル

+1

Name of file without extension (e.g. not 'XYZ.pdf' but just 'XYZ')が通じやすいと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/17 07:56

    ありがとうございます!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.54%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Python

    7891questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • OS

    207questions

    OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。