Обладая базовым уровнем знаний Python, можно выдать продукт, сопоставимый с готовыми решениями лидеров рынка. Количество готового кода постоянно растет, поэтому основное, что должен понять начинающий кодер, прежде чем накинуться на решения задачи и ее реализацию в коде - нужно потратить немного времени на поиск готовых решений. Другой вопрос, каков…
1. У вас объявление функции некорректное, код не запустится: keyword arguments всегда идут после positional arguments:
def r_spec(duration, path, temp, path2script, command='Rscript'):
2. Для чего склеивать два листа, если вы их тут же создаёте? Сделайте сразу один: cmd = [command, path2script, name, duration, path, temp]
3. subprocess.Popen() — довольно низкоуровневая функция, вам отлично подойдёт subprocess.run()
1. Да, спасибо, действительно опечатка. В рабочем варианте передача данных в функцию выглядит как у Вас.
2. Два листа были реализованы только для простоты восприятия исходных данных, которые передавались скрипту на R.
3. Такой вариант опробовался. subprocess.run() хоть и запускался без ошибок, но скрипт на R не отрабатывал, то есть csv не создавался. При этом subprocess.Popen() отработал, поэтому остановились на таком варианте.