msi 파일을 읽고 그것에 쿼리를해야합니다. 하지만 그것은 파이썬에 대한 표준 lib이지만, 그것은 가난한 documentation을 가지고있는 것 같습니다. 쿼리를 만들려면 데이터베이스 스키마를 알고 있어야하며 파일에서 가져 오는 예제 나 메서드를 찾을 수 없습니다.파이썬 msilib로 msi 읽기
는 여기에 내가 일하기 위해 노력하고있어 내 코드입니다 :
import msilib
path = "C:\\Users\\Paul\\Desktop\\my.msi" #I cannot share msi
dbobject = msilib.OpenDatabase(path, msilib.MSIDBOPEN_READONLY)
view = dbobject.OpenView("SELECT FileName FROM File")
rec = view.Execute(None)
r = v.Fetch()
그리고 rec
변수는 None입니다. 하지만 MSI 파일을 InstEd 도구로 열고 File이 테이블 목록에 있고 거기에 많은 레코드가 있다는 것을 알 수 있습니다. 내가 뭘 잘못하고있어?