You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何根据用户输入调用外部脚本(encrypt/decrypt)?

解决方案

首先修正原代码里的一个小问题:input()返回的是字符串类型,判断时要和字符串"1"比较,而非数字1。

以下提供两种可行的实现方式:

方式一:用subprocess执行独立脚本

适合encrypt.py和decrypt.py本身是可单独运行的脚本(自身包含if __name__ == "__main__"执行入口)。

修改后的main.py代码:

import subprocess
import sys

PATH = r"/path/to/scripts/"

def encryption():
    script_path = PATH + "encrypt.py"
    # 调用当前Python解释器执行目标脚本
    subprocess.run([sys.executable, script_path])

def decryption():
    script_path = PATH + "decrypt.py"
    subprocess.run([sys.executable, script_path])

if __name__ == "__main__":
    encrypt_or_decrypt = input("Do you want to [1] encrypt or [2] decrypt? ")
    if encrypt_or_decrypt == "1":
        encryption()
    else:
        decryption()

方式二:导入脚本模块调用函数

如果encrypt.py和decrypt.py是作为功能模块设计的(内部定义了专门的执行函数),直接导入调用更高效,也便于代码复用。

假设encrypt.py结构如下:

# encrypt.py
def run_encryption():
    # 加密核心逻辑
    print("执行加密操作")

if __name__ == "__main__":
    run_encryption()

decrypt.py结构类似:

# decrypt.py
def run_decryption():
    # 解密核心逻辑
    print("执行解密操作")

if __name__ == "__main__":
    run_decryption()

对应的main.py代码:

import sys

PATH = r"/path/to/scripts/"
# 将脚本路径添加到Python模块搜索路径
sys.path.append(PATH)

import encrypt
import decrypt

def encryption():
    encrypt.run_encryption()

def decryption():
    decrypt.run_decryption()

if __name__ == "__main__":
    encrypt_or_decrypt = input("Do you want to [1] encrypt or [2] decrypt? ")
    if encrypt_or_decrypt == "1":
        encryption()
    else:
        decryption()

内容的提问来源于stack exchange,提问作者Pork Lord

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 20:39:15