いくつかのプログラムをコンパイルして出力をフォルダーに入れるスクリプトがあります。スクリプトには、フォルダー内のすべての実行可能ファイルを反復して検索し、それらをリストに追加する関数があります。
def _oswalkthrough(direc,filelist=[]):
dirList=os.listdir(direc)
for item in dirList:
filepath = direc+os.sep+item
if os.path.isdir(filepath):
filelist = _oswalkthrough(filepath,filelist)
else:
if ".exe" == item[-4:]:
filelist.append(filepath)
return filelist
これはWindowsでは問題なく動作しますが、これをMacで実行すると動作しません。もちろん、Macでコンパイルされたファイルは「.exe」で終わっていないため、ifステートメントは役に立ちません、コンパイルされたファイルの名前を含むリストを作成し、スクリプトを次のように変更しましたが、まだ結果が得られません。「.o」ファイルを含むすべてのファイルが追加されます。私はexeが欲しいだけですか?(Mac で何と呼ばれているかわかりません!)。
def _oswalkthrough(direc,filelist=[]):
dirList=os.listdir(direc)
for item in dirList:
filepath = direc+os.sep+item
if os.path.isdir(filepath):
filelist = _oswalkthrough(filepath,filelist)
else:
for file in def_scons_exe:
if file == item[-4:]:
filelist.append(filepath)
return filelist