我是 python 新手,我正在将 C++ 文件转换为 python,但我不确定如何翻译以下 C++ 代码行:
virtual void show() const override
{ system(("cat " + filename).c_str()); }
system()
是执行系统命令的函数。
在 Python 中执行此操作通常使用subprocess模块执行。有关更多信息,请参阅此问题。
文档甚至有一个部分显示如何替换system
调用:
subprocess.call("cat " + filename, shell=True)
Python 确实有一个与 C 函数完全相同os.system
的函数,因为它是该 C 函数的薄包装:
这是通过调用标准 C 函数 system() 来实现的,并且具有相同的限制。
您可以轻松地在源代码中验证这是真的。
但正如文档所说,“该subprocess
模块为生成新进程和检索其结果提供了更强大的工具;使用该模块比使用此功能更可取。”
一定要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.
一个重要的建议:它可能在一个类中实现,如果文件名变量是“全局的”或这个类中的方法的公共变量,则不需要参数。
祝你好运!