小さなコマンド ライン ユーティリティを作成しています。うまくいけば、OSX、UNIX、および Linux で実行できるはずです。
小さな YAML 構成ファイルなど、いくつかの設定をどこかに保存する必要があります。そのようなファイルをどこに保存しますか?
言語: Python 2.7
OS: *nix
通常、これらのファイルは ~/.rc (例: ~/.hgrc) のような場所にあります。これは、ファイルへのパス、または多くの構成設定が必要な場合はディレクトリへのパスです。
わかりやすい説明については、http://www.linuxtopia.org/online_books/programming_books/art_of_unix_programming/ch10s03.htmlを参照してください。
アプリケーションの名前が「someapp」の場合、設定を .xml などのファイルに保存します$HOME/.someapp
。必要に応じて、構成ファイルに拡張子を付けることができます。アプリに複数の構成ファイルがあると思われる場合は、ディレクトリ$HOME/.someapp
を使用して、そこに通常の名前の (非表示ではない) ファイルを作成できます。
~
ファイルが完全にがらくたであふれているという理由だけで、ファイルをディレクトリに配置することは避けます。最近の傾向は、少なくとも ubuntu では、~/.config/<appname>/
必要なドット ファイルに使用することです。私はその大会がとても好きです。
多くのクロスプラットフォーム ツールは、OS X でも Linux (およびその他の POSIX/非 Windows プラットフォーム) と同じパスを使用します。POSIX の場所を使用する主な利点は、数行のコードを節約できることではなく、Mac 固有の手順が不要になることと、Mac ユーザーがコミュニティの Linux ユーザーから (提案を翻訳する必要なく) 助けを得られることです。 )。
もう 1 つの方法は、~/Library の下の「Mac に適した」場所に配置することです。Mac の場所を使用する主な利点は、コードをサンドボックス化する予定がない限り、基本的に「Apple がそう言っている」ことです。
ライブラリの場所を使用する場合は、「ファイル システム プログラミング ガイド」の「 OS X ファイル システムについて」および「 OS X ライブラリ ディレクトリの詳細」を読む必要がありますが、短いバージョンは次のとおりです。
Python では、これは次のように機能します (エラー処理を省略し、バンドル ID を自分で設定する代わりに名前で実行すると仮定します)。
from Foundation import *
fm = NSFileManager.defaultManager()
appsupport = (fm.URLForDirectory_inDomain_appropriateForURL_create_error_(
NSApplicationSupportDirectory, NSUserDomainMask, None, True, None)[0].
URLByAppendingPathComponent_isDirectory_(
appname, True))
caches = (fm.URLForDirectory_inDomain_appropriateForURL_create_error_(
NSCachesDirectory, NSUserDomainMask, None, True, None)[0].
URLByAppendingPathComponent_isDirectory_(
appname, True))
prefs = NSUserDefaults.persistentDomainForName_(appname)