So I figured out a way to do this with the help of another post I found:
import subprocess
newCOMObjectTxt = ("$path = 'PATH_TO_SLDPRT_FILE';"
"$shell = New-Object -COMObject Shell.Application;"
"$folder = Split-Path $path;"
"$file = Split-Path $path -Leaf;"
"$shellfolder= $shell.Namespace($folder);"
"$shellfile = $shellfolder.ParseName($file);")
swLastSavedWithIdx = None
swFindLastSavedWithProp = subprocess.Popen (["powershell.exe", newCOMObjectTxt + \
"0..500 | Foreach-Object { '{0} = {1}' -f $_, $shellfolder.GetDetailsOf($null, $_)}"],
stdout = subprocess.PIPE)
while True:
line = swFindLastSavedWithProp.stdout.readline()
if b"SW Last saved with" in line:
swLastSavedWithIdx = int(line.split()[0])
break
if not line:
break
swLastSaveWithVersion = subprocess.Popen (["powershell.exe", newCOMObjectTxt + \
"$shellfolder.GetDetailsOf($shellfile, %i)" %swLastSavedWithIdx], stdout = subprocess.PIPE)
ver = str(swLastSaveWithVersion.stdout.readline(),'utf-8').strip()
Basically I found that you can get all file properties via a few Windows Powershell commands. We write a few quick commands in powershell using subprocess.Popen(), then PIPE from STDOUT.