Правя скриптове с Windows от много години и едва през последните няколко седмици започнах да разглеждам Python като алтернатива. Опитвам се да напиша собствен скрипт на python за архивиране на mysql база данни с mysqldump. Обикновено правя това с команден ред, предаващ изхода > без проблем.
Виждам много отговори с subprocess.popen и shell=True, също така виждам много твърдения, че трябва да избягвам shell=True
Така че се опитвам да получа следния код, за да пренасоча моя stdout към файл, всичко без успех
sys.stdout=open("mysqldump.txt",'w')
print("testing line1")
subprocess.check_output(["mysqldump", "-u", "usernmae", "-ppassword", "-h", "dbserver_name", database_name])
Ако коментирам реда sys.sdout, виждам sqldump да се извежда на моя екран, така че знам, че имам правилния синтаксис за тази част. Добавих израза за печат и виждам, че това се записва във файла mysqldump.txt. Но когато се изпълнява изцяло, няма изхвърляне на екрана или файла
Някакви идеи? Опитвам се да избягвам използването на shell решение