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

Python调用带参数的EXE文件无输出问题求助

Python调用带参数的EXE文件无输出问题求助

嘿,我看懂你的问题啦!核心问题出在你生成EXE的代码上——你用了input()来获取文件路径,但input()是从**标准输入(控制台手动输入)**读取内容的,根本没处理命令行参数,所以你用subprocess传的路径参数完全没被EXE接收到,自然没输出啦。

给你两种解决思路,按需选择:

思路1:修改EXE代码,让它读取命令行参数(推荐)

把生成EXE的Python代码改成读取命令行参数的形式,用sys.argv来获取你传递的文件路径:

import sys

# 先检查有没有传参数
if len(sys.argv) < 2:
    print("请传入要读取的文件路径作为命令行参数哦!")
    sys.exit(1)

# sys.argv[0]是程序本身路径,sys.argv[1]就是你传的第一个参数
file_path = sys.argv[1]
with open(file_path, 'r') as file:
    y = file.read()

while True:
    print(y)

改完之后重新打包成EXE(比如用PyInstaller之类的工具),然后你原来的subprocess代码就可以正常工作了,甚至可以换成更推荐的subprocess.run:

import subprocess

exe = r'C:\Users\barha\PycharmProjects\pythonProject7\exe.exe'
text = r'C:\Users\barha\PycharmProjects\pythonProject7\text.txt'

subprocess.run([exe, text])

思路2:不改EXE,通过标准输入传递路径

如果你不想重新打包EXE,可以把文件路径通过标准输入传给它,毕竟原代码是用input()读取的:

import subprocess

exe = r'C:\Users\barha\PycharmProjects\pythonProject7\exe.exe'
text = r'C:\Users\barha\PycharmProjects\pythonProject7\text.txt'

# 把路径转成字节流传给EXE的标准输入
subprocess.run(exe, input=text.encode('utf-8'))

不过要注意,原代码里有while True循环,会一直输出文件内容,你可能需要手动终止进程哦。

备注:内容来源于stack exchange,提问作者Дима

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 09:33:06