【问题标题】:How can I read a file from a C++ file launched in a Python subprocess?如何从 Python 子进程中启动的 C++ 文件中读取文件?
【发布时间】:2021-12-10 18:30:45
【问题描述】:

我正在尝试使用 python 函数“子进程”启动一个 C++ 文件。我可以开始执行程序,但它无法读取我放入参数中的数据文件。

但是,当我使用指向相同数据的相同路径直接启动 C++ 文件时,程序运行良好。

您对为什么使用子流程不起作用有什么想法吗?

我在 python 文件中使用的命令行如下所示:

datafilePath="/home/*...*/dataFile.txt"

subprocess.run(["./programName", "-f "+datafilePath, (OtherOptionsWorkingFine) ],  cwd="./pathToMyProgram")
    

【问题讨论】:

  • “不管理”不是对问题的描述。它说什么?你试过调试程序吗?
  • 如果您在 C++ 程序中打印出 argv 参数数组 - 每行一个值,这样您就可以区分参数内部和参数之间的空格 - 您会立即看到差异。

标签: python c++ subprocess


【解决方案1】:

我认为您错误地添加了 datafilePath 参数。 尝试将所有 args 添加为单独的列表项,而不是将它们(其中一些)作为字符串连接在一起。

例如

subprocess.run(["./programName", "-f", datafilePath, (OtherOptionsWorkingFine) ],  cwd="./pathToMyProgram")

【讨论】:

  • 谢谢这是问题!起初它不起作用,但那是因为我在不需要的地方添加了一个空格(我使用“-f”而不是“-f”)
猜你喜欢
  • 1970-01-01
  • 2017-11-24
  • 1970-01-01
  • 1970-01-01
  • 2016-01-20
  • 1970-01-01
  • 2011-01-26
  • 1970-01-01
  • 2016-08-21
相关资源
最近更新 更多