0

私はPythonが初めてで、C++ファイルをPythonに変換していますが、次のC++コード行を変換する方法がわかりませんでした:

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

2 に答える 2

11

system()システムコマンドを実行する関数です。

Python でこれを行うには、通常、サブプロセスモジュールを使用します。詳細については、この質問を参照してください。

ドキュメントsystemには、呼び出しを置き換える方法を示すセクションもあります。

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

Python には、C 関数の薄いラッパーであるため、C 関数とまったくos.system同じことを行う関数があります。

これは、標準 C 関数 system() を呼び出すことによって実装され、同じ制限があります。

そして、これが真実であることをソースで簡単に確認できます。

しかし、ドキュメントが言うように、「subprocessモジュールは、新しいプロセスを生成し、その結果を取得するためのより強力な機能を提供します。そのモジュールを使用することは、この関数を使用することよりも望ましいです。」

于 2013-06-25T23:45:31.370 に答える
1

import os関数 system() が通常実装されている < cstdlib > < stdlib.h > と「同等」であることを確認してください。

正確な変換は次のようになります。

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 に答える