3

データの保存に使用するファイルパスを設定するプログラムを作成しています。フォーマットは以下の通りです

c://users/username/.../endingpath

コンピューターを切り替えると、ユーザー名が変更されます。作業している特定のコンピューターのユーザー名を指定する方法または方法はありますか?または、パスコンピュータを独立させるさらに良い方法はありますか?

私はWindows7でPython2.7を実行しています

4

4 に答える 4

7

Windowsでは、確認できるいくつかの事前定義された環境変数があります。それらの1つはですUSERNAME

それで:

import os
user_name = os.getenv("USERNAME")

Windowsは、一部のディレクトリの環境変数も定義します。ファイルをユーザーの個人用ホームディレクトリ(Windows 7の場合は:)に保存する必要がある場合は、または%SystemDrive%\Users\{username}を使用できます。これは、ユーザー名を使用して独自のパスを作成するよりも優れています。USERDATAUSERPROFILE

APPDATA@Matteo Italiaは、これがおそらく使用するのに最適な方法であると指摘しました。これは具体的には、アプリケーションがデータファイルを保存するためのディレクトリです。これは私には理にかなっています。彼は正しいと思います。

それで:

import os
appdata_dir_name = os.getenv("APPDATA")

ウィキペディアでWindows環境変数のリストを見つけました。

http://en.wikipedia.org/wiki/Environment_variable#Examples_from_Microsoft_Windows

于 2012-06-25T20:09:37.097 に答える
2

SHGetKnownFolderPath関数を使用して適切なディレクトリを見つける必要があります。おそらくpywin32を使用してその関数を使用できます。

于 2012-06-25T20:15:55.317 に答える
1

Windows 7を指定したので、プログラムが実行されるすべてのコンピューターでWindows 7を使用していると想定しているので、を使用できます'%UserProfile%/.../endingpath'。(または'%UserProfile%\\...\\endingpath'。)

http://en.wikipedia.org/wiki/Home_directory#Default_Home_Directory_per_Operating_System

于 2012-06-25T20:10:26.677 に答える
1

以下を使用してください

os.path.expanduser(path)

パスがパス名の前に〜または〜userのいずれかで相対的であることを確認してください

http://docs.python.org/library/os.path.html

于 2012-06-25T20:28:10.120 に答える