0

script を含むいくつかのデータ フォルダーがありExportScriptGen.py、ディレクトリ構造を走査して、ExportScriptGen.py見つかった各フォルダーで実行できるスクリプトが必要です。これは私がこれまでに持っているものです:

import sys
import os
import os.path
import subprocess

script = "ExportScriptGen.py"

if len(sys.argv) > 1:
    top = sys.argv[1]
else:
    top = os.path.realpath(".")

for root, dirs, files in os.walk(top):
    if (script in files):
        subprocess.call(os.path.join(root,script), shell=True)

ExportScriptGen.py別のフォルダーにスクリプトを生成します (テスト済み)。メイン スクリプトを小規模 (つまり、サブディレクトリがExportScriptGen.pyあり、サブディレクトリがない 1 つのフォルダー) でテストすると、すべて正常に動作します。ただし、本格的な問題 (多数のディレクトリ/サブディレクトリがある) で実行すると、 によって出力が生成されませんExportScriptGen.py。これはなぜでしょうか?Windows 7 で Python 3.2 を実行しています。

ここにありExportScriptGen.pyます:

import sys
import os.path
import os

### Declarations ###

script_check_dir = # directory to place scripts in
layout_name = # parameter to write into top of script
template_name = # template for script
out_script_tail = # string to add at end of output script file

### Code ###

if len(sys.argv) > 1:
    folder = sys.argv[1]
else:
    folder = os.path.dirname(os.path.realpath(__file__))

data_files = filter(os.path.isfile, os.listdir(folder))
data_files = [f for f in data_files if ("." in f) and os.path.splitext(f)[1][1].isdigit()]

for dfile in data_files:
    out_script_name = os.path.join(script_check_dir, dfile+out_script_tail)
    out_script = open(out_script_name, 'w')

    out_script.write("folder = \"{}\\\"\n".format(folder))
    out_script.write("layout = folder + \"{}\"\n".format(layout_name))
    out_script.write("dataFile = folder + \"{}\"\n".format(dfile))

    template = open(os.path.join(folder, template_name), 'r')
    for line in template:
        out_script.write(line)

    out_script.close()
4

0 に答える 0