溫馨提示×

在Python里exec函數如何處理輸出

小樊
144
2024-12-07 14:17:41
欄目: 編程語言

在Python中,exec()函數用于執行存儲在字符串或對象中的Python代碼。默認情況下,exec()函數不會返回任何輸出,但你可以通過捕獲sys.stdout來處理輸出。下面是一個示例:

import sys

code = """
print("Hello, World!")
x = 1 + 2
print("The result of x is:", x)
"""

# 保存原始stdout引用
original_stdout = sys.stdout

try:
    # 將stdout重定向到StringIO對象
    from io import StringIO
    sys.stdout = StringIO()

    # 執行代碼
    exec(code)

    # 獲取執行期間的輸出
    output = sys.stdout.getvalue()
    print("Output:", output)
except Exception as e:
    print("An error occurred:", e)
finally:
    # 恢復原始stdout
    sys.stdout = original_stdout

在這個示例中,我們首先導入sys模塊,然后定義一個包含要執行的代碼的字符串。我們保存了原始的sys.stdout引用,然后將其重定向到一個StringIO對象。這樣我們就可以捕獲代碼執行期間的輸出。接下來,我們使用exec()函數執行代碼,并使用getvalue()方法從StringIO對象中獲取輸出。最后,我們將sys.stdout恢復為原始引用。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女