自分で作成したPythonモジュールがあり、にあり/usr/local/lib/python3.4/site-packages/my_module1
ます。モジュールにはこれがあります:
class Class1(object);
def __init__(self, file_name):
self.file_name = file_name # how can I get the full path of file_name?
どうすればいっぱいになりfile_name
ますか?つまり、パスのない単なるファイル名の場合は、モジュールが呼び出されている現在のフォルダーを追加します。それ以外の場合は、ファイル名をフルパスとして扱います。
# /users/me/my_test.py
from module1 import Class1
c = Class1('my_file1.txt') # it should become /users/me/my_file1.txt
c1 = Class1('/some_other_path/my_file1.txt') # it should become /some_other_path/my_file1.txt/users/me/my_file1.txt
更新:それについては申し訳ありません。私はあなたの質問を読み間違えました。あなたがする必要があるのはそう渡すfilename
ことだけos.path.abspath()
です。
例:
import os
filename = os.path.abspath(filename)
あなたの2番目のケース(私はかなり奇妙だと思います)に対応するには:
import os
if os.path.isabs(filenaem):
filename os.path.join(
os.path.join(
filename,
os.getcwd()
),
os.path.basename(filename)
)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加