파이썬을 사용하여 SQLite 데이터베이스를 7-zip 아카이브 (Windows에서)로 덤프하려고합니다. 나는 다음과 같은 코드가 있습니다 :파이썬 하위 프로세스를 사용하여 SQLite에서 7-zip으로 파이프 출력
import os
import subprocess
DatabaseName = os.path.join('C:\\','Database.sqlite')
ArchiveName = os.path.join('C:\\','temp.7z')
FileName = 'trial.txt'
command = 'sqlite3 %s < C:\\\\SQLite3\\DumpToSTDout.txt | 7z a %s -si%s' % (DatabaseName, ArchiveName, FileName)
print command
DumpProc = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
DumpProc.wait()
print DumpProc.stdout.read()
print DumpProc.stderr.read()
C : \ sqlite3를 \ DumpToStdout.txt가 두 번째 행의 첫 번째 라인과 '.dump'에 '· 출력 표준 출력'텍스트 파일입니다.
나는 다음과 같은 오류가이 코드를 실행하면 :
sqlite3: Error: too many options: "C:\\SQLite3\DumpToSTDout.txt"
Use -help for a list of options.
을하지만 인쇄 명령을하고 명령 창에서 직접 실행하면 제대로 실행됩니다.
내가 뭘 잘못하고 있니?
교착 상태를 피하기 위해'DumpProc.communicate()'을 사용하십시오. – jfs
감사합니다. – MatlabSorter