programing

Python에서 SQL 파일 실행

randomtip 2022. 9. 8. 21:35
반응형

Python에서 SQL 파일 실행

python sql 파일을 실행해야 합니다.파일은 mysql용입니다.이렇게 해봤어요.

from subprocess import Popen, PIPE
import sys


class ImportSql:
    def execImport(self, fileSql):
        try:
            with open(fileSql, 'r') as fileInput:
                proc = Popen(["mysql", "DB_NAME", "-u", "USER", "-pPASSWORD"], stdin=PIPE, stdout=PIPE)
                proc.communicate('source ' + fileInput)[0]
        except BaseException as ex:
            print("ERROR:", ex)
            sys.exit()

하지만 다음 오류가 발생합니다.

오류: _io가 아닌 str이어야 합니다.TextIOWrapper

어떻게 해야 할까?

파일 객체가 아닌 파일 내용을 전달해야 합니다.

proc.communicate('source ' + fileInput.read())

또, 인쇄하고 종료하는 것만으로 예외를 잡지 말아 주세요.Python은 이미 그렇게 하고 있습니다.그 시도/제외는 제외한다.

좋아, 박쥐 안에 있는 mysql 명령어를 옮겼어

from subprocess import Popen


class ImportSql:
    def execImport(self):
        p = Popen("import.bat")
        p.communicate()

괜찮아! 고마워!

언급URL : https://stackoverflow.com/questions/43864950/running-sql-file-from-python

반응형