Python subprocess.run()似乎以只读方式启动我的MS Access应用程序

Python subprocess.run()似乎以只读方式启动我的MS Access应用程序,python,windows,ms-access,subprocess,Python,Windows,Ms Access,Subprocess,Python subprocess.run()似乎以只读方式启动我的MS Access应用程序 我的Python 3.7.3脚本通过subprocess.run()调用Win 10上的MS Access应用程序。当它执行MS Access应用程序时,MS Access遇到一个错误条件,我得到一个弹出窗口,说明“无法更新。数据库或对象是只读的”。我只有在python中执行MS Access应用程序(例如:MetaQA.accdb)时才会遇到这种情况。如果我在资源管理器中双击MetaQA.accdb

Python subprocess.run()似乎以只读方式启动我的MS Access应用程序

我的Python 3.7.3脚本通过subprocess.run()调用Win 10上的MS Access应用程序。当它执行MS Access应用程序时,MS Access遇到一个错误条件,我得到一个弹出窗口,说明“无法更新。数据库或对象是只读的”。我只有在python中执行MS Access应用程序(例如:MetaQA.accdb)时才会遇到这种情况。如果我在资源管理器中双击MetaQA.accdb,它会正常运行。在通过子流程调用MetaQA.accdb之前,我从未见过这个问题。子进程是否以只读模式运行它?如果是这样,我该如何改变

旁注:我查看了我的各种MS Access应用程序,它们在写入本地表时似乎失败了,即“选择empnum、max(transdate)作为lastpaid进入last_staff_paid”

将变量值转换为以下代码:

access=C:/Program Files(x86)/Microsoft Office/Office16/MSACCESS.EXE

commandLine=S:/ADMIN/DIS/Access Projects/AFEs/MetaQA.accdb

try:
    os.chdir( batchPath )   #   cd to the batch dir.

    if( args.verbose ):
        print( "changed directory to: " + os.getcwd() )
except OSError:
    print( "Unable to change directory to:", batchPath )

if( args.job ): #   run only one job
    commandLine = batchPath + args.job

    if( args.verbose ):
        print( "Running process: " + access + " " + commandLine )

    #   No timer as its assumed this is being run on the cmd line
    proc = subprocess.run( [ access, commandLine ],
        stdout=subprocess.PIPE,
        stderr=subprocess.STDOUT,
        universal_newlines=True
    )

    if( proc.returncode != 0 ):
        returnStatus = returnStatus + " The following batch job failed: " + batchFiles + "\n"

请尝试用“\\”代替正斜杠来显示Windows文件路径。@Parfait谢谢,我的代码现在可以正常工作了