ファイルの名前だけが指定されている場合、IPython がシステム パスを検索してファイルを見つけるようにする方法はありますか?
foo_060112.dat
パス内のフォルダーで一意に名前が付けられた多くのデータ ファイルを含むフォルダーにファイルがあります。フル パスを指定せずに、このファイルに対して関数load
または関数を簡単に呼び出せるようにしたいのですが、可能ですか?open
ファイルの名前だけが指定されている場合、IPython がシステム パスを検索してファイルを見つけるようにする方法はありますか?
foo_060112.dat
パス内のフォルダーで一意に名前が付けられた多くのデータ ファイルを含むフォルダーにファイルがあります。フル パスを指定せずに、このファイルに対して関数load
または関数を簡単に呼び出せるようにしたいのですが、可能ですか?open
独自の関数を記述して、パスを検索し、選択したモードに従って開いているファイル オブジェクトを返すことができます。
import sys
import os
def my_open(filename, mode):
for path in sys.path:
try:
return open(os.path.join(path, filename), mode)
except IOError:
continue
return None
例:my_open('foo_060112.dat', 'rb')
これが役立つと思います:
import os,sys
path = os.sytem('locate foo_060112.dat')
print path
または、次を使用することもできます。
_SOURCE_FILE_PATH = '/home/admin/'
_each_folder = os.walk("%s/" %(_SOURCE_FILE_PATH))
for x in _each_folder:
print x
if x[1] == []:
for y in x[2]:
if y == 'locate foo_060112.dat'
f = open(y,'r')
data = f.read()