У меня нет доступа к машине с Windows, но что-то вроде этого может помочь. Измените вторую часть, чтобы она соответствовала тому, что вы делаете с Python.
/* (1) Instead of Python scripts, count some files and store the counts */
winexec rm "/Users/dimitriy/*_count.txt"
winexec find /Users/dimitriy -type f -name '*.ado' | wc -l > ado_count.txt
winexec find /Users/dimitriy -type f -name '*.pdf' | wc -l > pdf_count.txt
winexec find /Users/dimitriy -type f -name '*.do' | wc -l > do_count.txt
/* (2) Wait for ALL 3 files to be generated since Stata does not wait for winexec commands to finish */
capture ssc install fs, replace
while "`num_files'" != "3" {
local num_files: word count `r(files)'
sleep 10000 // sleep 10 seconds
fs *_count.txt
}
di "All Done!"
Ответ на комментарий ниже:
Это не имеет смысла и не будет работать по целому ряду причин. Я предполагал, что ваши сценарии Python выдают 8 выходных файлов. Поскольку я не знаю, что это такое, я попытался использовать 3 команды Mac, которые создают три файла, чтобы дать мне что-то для работы на шаге 1. Шаг 2 проверяет, что эти 3 файла существуют, прежде чем продолжить.
Предполагая, что каждый скрипт Python i создает файл с именем output_i.txt для i=1,..,8, вам понадобится что-то вроде этого:
forvalues v=1/8 {
winexec "C:/Python34/python.exe" "D:/my code/PythonCode`v'.py"
}
capture ssc install fs, replace
while "`num_files'" != "8" {
local num_files: word count `r(files)'
sleep 10000 // sleep 10 seconds
fs output_*.txt
}
person
Dimitriy V. Masterov
schedule
09.10.2017