Python subprocess.run()似乎以只读方式启动我的MS Access应用程序
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.accdbPython 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
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谢谢,我的代码现在可以正常工作了