【问题标题】:AttributeError: module 'subprocess' has no attribute 'c'. What does the c attribute do in subprocess?AttributeError:模块“子进程”没有属性“c”。子进程中的 c 属性有什么作用?
【发布时间】:2020-05-01 18:47:55
【问题描述】:

我试图解决一个问题,其中有一个函数使用subprocess.c['rnd_string'],但我找不到任何关于 c 做什么的信息。我有两个文件,都使用相同的导入:

*#!/usr/bin/python3
import sys
import subprocess.*

第一个有效,但是当我尝试使用第二个文件时出现错误:

AttributeError: 模块 'subprocess' 没有属性 'c'

在第一个文件中是这样的:

subprocess.run(subprocess.c['rnd_string'], stdout=subprocess.PIPE)

第二个:

subprocess.c['rnd_string2']

文件名是a1和a2,所以不应该影响子流程的导入。

【问题讨论】:

  • 您确定以下代码 subprocess.run(subprocess.c['rnd_string'], stdout=subprocess.PIPE) 实际运行,即执行?
  • 第一个文件是否明确添加了一些subprocess.c 属性?

标签: python subprocess


【解决方案1】:

子进程模块中没有名为c 的此类方法/属性,因此它不可能在您的第二个文件中运行。

至于第一个 subprocess.run(subprocess.c['rnd_string'], stdout=subprocess.PIPE) 你所说的实际上并没有执行。

【讨论】:

  • 你是对的,第一个从未被处决!非常感谢!
  • 这不是* 所做的。函数定义中的 * 标志着纯关键字参数的开始。这并不意味着您可以将无意义的表达式作为参数传递并让它们起作用。
  • @user2357112supportsMonica 感谢您的注意,我有疑问。编辑了我的答案:)
猜你喜欢
  • 1970-01-01
  • 2011-06-09
  • 2020-06-30
  • 1970-01-01
  • 2011-05-22
  • 1970-01-01
  • 2018-02-21
  • 1970-01-01
  • 2018-04-14
相关资源
最近更新 更多