0

我是 python 新手,我正在将 C++ 文件转换为 python,但我不确定如何翻译以下 C++ 代码行:

virtual void show() const override
{ system(("cat " + filename).c_str()); }
4

2 回答 2

11

system()是执行系统命令的函数。

在 Python 中执行此操作通常使用subprocess模块执行。有关更多信息,请参阅此问题

文档甚至有一个部分显示如何替换system调用:

subprocess.call("cat " + filename, shell=True)

Python 确实有一个与 C 函数完全相同os.system的函数,因为它是该 C 函数的薄包装:

这是通过调用标准 C 函数 system() 来实现的,并且具有相同的限制。

您可以轻松地在源代码中验证这是真的。

但正如文档所说,“该subprocess模块为生成新进程和检索其结果提供了更强大的工具;使用该模块比使用此功能更可取。”

于 2013-06-25T23:45:31.370 回答
1

一定要import os“等价于” <cstdlib> <stdlib.h> 函数 system() 被正常实现的地方。

精确的转换可能如下所示:

os.system(str("cat" + filename)),但是如果文件名已经是一个字符串,那么只需调用: os.system("cat" + filename)

另外,我对 C++ 不太熟悉,但知道 ANSI C,似乎virtual void show() 是一些方法或函数,因此您可能正在寻找:

def show(filename):
   os.system("cat" + filename)
#notice that i used the filename as parameter,
#however if its a global variable this is unnecessary.

一个重要的建议:它可能在一个类中实现,如果文件名变量是“全局的”或这个类中的方法的公共变量,则不需要参数。

祝你好运!

于 2013-06-26T00:15:32.113 回答