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

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

新規登録して質問してみよう
ただいま回答率
85.48%
OS

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

Python

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

Q&A

解決済

4回答

12873閲覧

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

退会済みユーザー

退会済みユーザー

総合スコア0

OS

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

Python

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

0グッド

3クリップ

投稿2018/04/14 02:52

編集2018/04/14 07:28

疑問

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」というのでしょう(何かの略でしょうか)

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

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

それですと、先の回答者さんらが書かれている「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/14 19:29

編集2018/04/14 19:38
dodox86

総合スコア9183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/04/16 22:53

掘り下げた検討ありがとうございます! たしかに調べてみるとこういうのがありました(大辞林) 語根と同じ意味あいみたいですね ごかん【語幹】 ①国文法で、用言の活用語尾を取り除いた変化しない部分。「歩く」「速い」の「ある」「はや」など。〔「着る」「来る」など、語によっては語幹と語尾がはっきり分けられないものもある〕⇔語尾。 ②印欧語などで、屈折する語の変化しない部分。語根。
dodox86

2018/04/17 00:34

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

0

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/14 03:48

KojiDoi

総合スコア13671

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/04/16 22:57

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

0

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

numpy.py
numpy.pyc
...etc.

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

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

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

投稿2018/04/14 03:11

KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/04/16 22:55

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

0

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

投稿2018/04/14 10:28

YouheiSakurai

総合スコア6142

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/04/16 22:56

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問