開いているファイルがある場合は、os
という呼び出しがあり、完全なパスを文字列として取得できますか? f
から開いているファイルからのパスをPythonで取得する
f = open('/Users/Desktop/febROSTER2012.xls')
、どのように私は"/Users/Desktop/febROSTER2012.xls"
になるだろうか?
開いているファイルがある場合は、os
という呼び出しがあり、完全なパスを文字列として取得できますか? f
から開いているファイルからのパスをPythonで取得する
f = open('/Users/Desktop/febROSTER2012.xls')
、どのように私は"/Users/Desktop/febROSTER2012.xls"
になるだろうか?
ここでのキーは、開かれたファイルを表すf
オブジェクトのname
属性です。あなたはそれを得る:
>>> f = open('/Users/Desktop/febROSTER2012.xls')
>>> f.name
'/Users/Desktop/febROSTER2012.xls'
それは役に立ちますか?
ディレクトリ名を取得したいだけで、ファイル名が必要ない場合は、os
Pythonモジュールを使用して、従来の方法でそれを行うことができます。
>>> import os
>>> f = open('/Users/Desktop/febROSTER2012.xls')
>>> os.path.dirname(f.name)
>>> '/Users/Desktop/'
このようにして、ディレクトリ構造を取得できます。
'f = open( 'febROSTER2012.xls')'を使用すると空文字列を返します。どうすれば完全な道に進むことができますか? – NZD
@NZD:http://stackoverflow.com/a/38867035/1587329を参照してください。 –
私は全く同じ問題を抱えていました。相対パスを使用している場合、os.path.dirname(path)は相対パスのみを返します。
>>> import os
>>> f = open('file.txt')
>>> os.path.realpath(f.name)
これは実際には本当の答えです。 – BlueTrin
ます。また、このようにそれを取得することができます:os.path.realpathは、トリックを行います。
filepath = os.path.abspath(f.name)
'tempfile.TemporaryFile(モード=' w '、接頭辞=' xxx '、接尾辞=' .txt ')で作成されたファイルの場合は動作しません! – Victor
@Victor:特に '[tempfile.NamedTemporaryFile'](http://docs.python.org/2/library/tempfile.html#tempfile.NamedTemporaryFile)の' tempfile'モジュールのドキュメントを読んでください。あなたが言及した 'tempfile.TemporaryFile'のドキュメンテーションです。これはテンポラリファイルの特定のケースであり、ドキュメントに見られるように、既存のソリューションが既に存在します。 'tempfile.TemporaryFile'は、名前を読みたい場合に使用するためのものではありません。 – Tadeck
open( 'foo.txt'、 'w')を使用してファイルを作成してからf.nameを実行すると、foo.txtという出力しか得られません。 – searchengine27