python - 如何在与子进程相同的目录中使用python调用脚本?
问题描述
我正在尝试在 Windows 10 中使用带有 python 3 的子进程(我是管理员)并使用 pycharm 从同一目录中打开一个脚本,但是对于我尝试的任何替代解决方案,我都会收到以下错误:
这是我的代码:
import subprocess
subprocess.call(['C:\\Users\\CobraCommander\\PycharmProjects\\BlackBox', 'Avalon.py']) # The above "BlackBox" it's the directory for both files.
有了这个我得到以下错误:
PermissionError: [WinError 5] Access is denied
如果我尝试改为:
subprocess.call(['python Avalon.py'])
有了这个我得到以下错误:
FileNotFoundError: [WinError 2] The system cannot find the file specified
所以我尝试了:
subprocess.call(['C:\\Users\\CobraCommander\\PycharmProjects\\BlackBox\\Avalon.py'])
有了这个我得到以下错误:
OSError: [WinError 193] %1 is not a valid Win32 application
我还尝试从终端以管理员身份运行并得到相同的错误:
PermissionError: [WinError 5] Access is denied
在尝试标记为重复之前,请注意我已经阅读了其他帖子中的错误和子流程。
任何人都可以建议如何从另一个脚本中用 python 午餐这个脚本吗?
解决方案
您需要提供cwd
参数来设置工作目录:
https://docs.python.org/3/library/subprocess.html#subprocess.call
import subprocess
if __name__ == '__main__':
subprocess.run(r'touch d:\test.txt')
p = subprocess.run(r'ls -la test.txt', cwd=r'd:\\', stdout=subprocess.PIPE)
print(p.stdout.decode())
输出:
-rw-r--r-- 1 abdusco 197609 0 Jul 18 13:32 test.txt
推荐阅读
- java - [TreeMap]:在一个类中创建和加载 TreeMap,并从几个单独/不同的类中访问该 Tmap
- javascript - 如何在不占用空间的情况下隐藏 html 元素 x 时间?
- python-3.x - Mac终端flake8 --version在pip3下载后找不到flake8
- c# - List<>.Append 不适用于公共、静态和初始化字段
- r - R - ggplot2:基于数据类别的曲线下的阴影区域
- algorithm - 如何证明一般多项式情况下的 Big-omega?
- c++ - 相同的未更改代码是否有可能有时运行而有时不运行?
- node.js - 无法使用 ssl 和 apache 连接到 websocket
- java - 我怎么能用java目录和子目录中的所有文件创建一个Jtable
- mule-studio - 为什么在任何点平台中禁用“从 REST API 生成流”选项?