Python subprocess.call не работает так же, как с python shell - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь объединить 2 python сценария ( before.py и after.py ) в один, так как мне нужно установить задание cron для сценария python чтобы запустить оба сценария в одном исполнении.

2 сценария соединены, при этом файл, который обрабатывается с помощью after.py (tmp1.txt), генерируется before.py .

Исходный порядок сценариев

python3 before.py someCsv.csv > tmp1.txt
python3 after.py tmp1.txt >tmp2.txt

в before.py, я добавил это subprocess.call(' python3 after.py tmp1.txt > tmp2.txt', shell=True)

Что, я считаю, позволит выполнить команду запуска оболочки внутри python.

enter image description here

Если я запускаю скрипт напрямую (after.py), он возвращает 44 623 записи. Но если я запускаю after.py в before.py через subprocess.call (), он возвращает только 44 619 записей.

Я использую один и тот же файл в обоих скриптах, то есть tmp1.txt.

Я пробовал subprocess.call (), subprocess.run () и os.system (). Кажется, я здесь что-то не так делаю.

1 Ответ

0 голосов
/ 31 марта 2020

вместо вывода результата в новый файл через ">" в оболочке python, я просто создал новый файл в before.py, который гарантирует, что перед запуском after.py, tmp1.txt завершен на 100%. Что позволяет мне получить полные 44 623 записей.

Это конец before.py. Вместо непосредственного вывода в файл в оболочке python, я просто создал файл в самом скрипте. enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...