gpt4 book ai didi

python - os.system() 通过 Python::Limitations 执行?

转载 作者:行者123 更新时间:2023-11-28 18:37:15 30 4
gpt4 key购买 nike

我正在编写一个 Python(2.7 版)脚本来自动化本入门指南中的命令集 example对于INOTOOL .

问题:当我运行整个脚本时,我反复遇到这些错误:

Current Directory is not empty  
No project is found in this directory
No project is found in this directory

但是,当我只运行第一个脚本直到标记的代码行,然后手动输入接下来的三行时,或者当我运行最后三行(从“ino init -t blink”行开始)之后手动访问 beep 文件夹,然后我就能成功执行相同的代码。

我遇到的 os.system() 有限制吗?

我的代码:

import os,sys  
def upload()
os.system("cd /home/pi/Downloads")
os.system("mkdir beep")
os.system("cd beep") #will refer to this code junction in question description
os.system("ino init -t blink")
os.system("ino build")
os.system("ino upload")
sys.exit(0)

最佳答案

是的,当 os.system() 命令为 cd 运行时,它实际上并没有改变 python 进程上下文的当前目录。来自 documentation -

os.system(command)

Execute the command (a string) in a subshell. This is implemented by calling the Standard C function system(), and has the same limitations. Changes to sys.stdin, etc. are not reflected in the environment of the executed command.

因此,即使您在 os.system() 调用中更改目录,下一个 os.system 调用仍会在同一目录中发生。这可能会导致您的问题。

您应该尝试使用 os.chdir()更改目录而不是 os.system() 调用。

最好的方法是使用 subprocess 模块,正如@PadraicCunningham 在他的回答中解释的那样。

关于python - os.system(<command>) 通过 Python::Limitations 执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31299360/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com