저는 수년 동안 창문으로 스크립팅을 해왔으며 지난 몇 주 동안 대안으로 파이썬을 살펴보기 시작했습니다. mysqldump를 사용하여 mysql 데이터베이스를 백업하기 위해 원시 파이썬 스크립트를 작성하려고합니다. 필자는 보통 문제없이 출력을 파이핑하는 명령 줄을 사용하여이 작업을 수행합니다.mysqldump와 subprocess.call 사용하기
나는 = 똑같이 나는 많은 문이 나는 껍질을 방지해야한다고보고, 나는 파일로 내 표준 출력을 재 지정하려면 다음 코드를 얻으려고 그래서
진정한 subprocess.popen와 쉘 = True로 많은 답변을 참조 모든 성공
sys.stdout=open("mysqldump.txt",'w')
print("testing line1")
subprocess.check_output(["mysqldump", "-u", "usernmae", "-ppassword", "-h", "dbserver_name", database_name])
없이 나는 내가이 부분에 대한 올바른 구문을 알 수 있도록 나는 sqldump 내 화면에 출력 참조 sys.sdout 라인을 주석 처리합니다. 나는 print 문을 추가하고 이것이 mysqldump.txt 파일에 쓰여진 것을 볼 수있다. 하지만 완전히 실행하면 화면이나 파일에 덤프가 없습니다
아이디어가 있으십니까? 쉘 솔루션 사용을 피하려고합니다.
고마워요이 치료를 :-) – Rob
'dbserver_name' 무엇입니까? localhost입니까? – OPV
@OPV 아마도 db가 실행중인 서버의 호스트 이름입니다. mysqldump에 대한 인수가 질문에서 복사되었으므로 OP에 질문해야합니다 (또는 [설명서] (https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html# mysqldump-syntax))의 의미를 설명한다. – user4815162342