【问题标题】:subprocess permission denied子进程权限被拒绝
【发布时间】:2017-02-21 13:30:54
【问题描述】:

我正在研究 python 如何在 Windows 10 上启动其他程序,我正处于堆栈溢出状态,有人说:

import subprocess
subprocess.call(['C:\\Users\Edvin\Desktop', 'C:\\Example.txt'])

应该这样做,所以我更改了位置,所以它是特定于我的,并且有一个错误是 PermissionError: [WinError 5] Access is denied

有谁知道如何授予python打开文件的权限?

我试过了:

import subprocess
subprocess.call(['C:\\Users\\Edvin\\AppData\\Roaming\\Microsoft\\Windows'
                 '\\Start Menu\\Programs\\Accessories\\Notepad.exe'],
                 'C:\\Users\\Edvin\\Desktop\\Example.txt')

但这会出现TypeError: bufsize must be an integer 错误。

【问题讨论】:

  • 别担心,这很清楚,我读得不够好。

标签: python windows permissions subprocess python-3.5


【解决方案1】:

问题是您正在尝试将您的桌面作为程序启动。以文本文件作为参数。

这是不允许的,因为你不能执行桌面(因为它不能被执行)。

subprocess.call(["command here", "arguments here"])

如果是exe 使用

subprocess.call(['C:\\...\\program.exe', 'argument'])

如果是python脚本使用

execfile('file.py')

【讨论】:

  • 即使是桌面上的文件?
  • 那么我应该在参数中添加什么?
  • 我尝试将参数留空并输入正确的命令,但出现新错误 OSError: [WinError 193] %1 is not a valid Win32 application
  • 这是我的确切代码 import subprocess subprocess.call(['C:\\Users\Edvin\Desktop\Example.txt', '']) 我试图打开一个文本文件在我的桌面上,你可能会看到
  • 用什么打开?记事本 ?因为不是程序中的txt。您可以尝试找到 Notepad.exe 或类似的东西,然后使用subprocess.call(['C:\\...\\Notepad.exe', C:\\Users\Edvin\Desktop\Example.txt'])
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-30
  • 1970-01-01
  • 2018-05-08
  • 2014-04-22
  • 2014-11-15
相关资源
最近更新 更多