使用python3子进程模块的函数抛出错误

kkih6yb8  于 2023-08-08  发布在  Python
关注(0)|答案(2)|浏览(119)

代码:-

import subprocess
print(subprocess.run(['date']))

字符串
运行时:-

Traceback (most recent call last):

File "D:\PyProjects\selenium\0experiment.py", line 8, in <module>
print(subprocess.run(['date']))

File "D:\Users\anaconda3\lib\subprocess.py", line 488, in run
with Popen(*popenargs, **kwargs) as process:

File "D:\Users\anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 104, in __init__
super(SubprocessPopen, self).__init__(*args, **kwargs)

File "D:\Users\anaconda3\lib\subprocess.py", line 800, in __init__
restore_signals, start_new_session)

File "D:\Users\anaconda3\lib\subprocess.py", line 1207, in _execute_child
startupinfo)

FileNotFoundError: [WinError 2] The system cannot find the file specified


我是完全新的这些和学习这些东西从网上视频.其中导师的相同的代码运行完美。Here is the video (at 1:40)
我也试过这个代码:

import subprocess
print(subprocess.run(['date'], shell=True))


但是当运行时,上面的代码导致控制台运行了很长一段时间,我不得不手动终止它(没有在控制台上打印任何东西)。(为什么??)
我在谷歌上搜索了很多,读了一些类似的问题,有这样的错误......但无法帮助自己:for example this thread.

  • 这是什么[WinError 2],是什么导致了这个错误?
  • FileNotFoundError,这个程序引用的是什么文件?
  • 在执行使用子进程模块的程序之前,是否需要满足任何与操作系统/系统相关的先决条件?
  • 我使用的是windows 10,Spyder IDE(没有安装在C驱动器中,而是安装在D驱动器中)有最新版本的Python。

请用通俗的语言解释一下。- 谢谢-谢谢

xt0899hw

xt0899hw1#

尝试在CMD终端上运行date,它会提示您输入一个新的日期,这就是导致您的子进程无限期挂起的原因。对于这个命令使用shell=True是正确的。shell的使用扩展了你的环境变量和可用的文件列表(这就是win32错误的意思)。因为date是一个特定的windows命令,所以你需要shell。使用shell=True也是依赖于平台的,因此您可能需要检查您正在尝试执行的命令。

aydmsdu9

aydmsdu92#

我已经使用了这个在SPyder以及它运行正确,我唯一关心的(因为我也是新的这一点)是为什么控制台要求您输入一个新的日期。但不管怎样都管用

import subprocess
subprocess.run(["date"], shell=True)

字符串
输出(西班牙文):

La fecha actual es: jue. 27/07/2023 
Escriba la nueva fecha: (dd-mm-aa)


第一行告诉你日期,第二行要求你输入新的日期,如上所述。

相关问题