当前位置: 代码网 > it编程>前端脚本>Python > python如何调用外部的exe程序

python如何调用外部的exe程序

2025年02月13日 Python 我要评论
需求一开始执行外部的exe的命令被写入xxx.cmd文件中从python中调用该执行命令import ospopenimport osdef run_genratetexts(file_name):

需求

一开始执行外部的exe的命令被写入xxx.cmd文件中

从python中调用该执行命令

  • import os
  • popen
import os

def run_genratetexts(file_name):
    cmd = '.\\tool\\translationdir\\translationconsole.exe '
    cmd = cmd + file_name + ' . 60'
    print(cmd)
    res = os.popen(cmd)
    output_str = res.read()
    print(output_str)

注意

一开始写的时候,不知道要反斜杠需要加两个斜杠==\\==而出现无法运行的情况

未解决

output_str为执行返回的结果,但是当有中文输出时,在console端显示为乱码

路径的写法

在windows中,读取文件可以用‘\’,但是在字符串中,’'是被当做转义字符来使用的,所以‘d:\test.txt’会被转成‘d:\a.txt’这是正确路径,所以不会报错。

而如果文件中带了\t可能就转义成tab键了。或者\n可能转成换行。

遇到过这样子的错误

[error 22] invalid argument: 'd:\\xxx\\yyy\\zzz\\abc.cmd'  

使用linux下的路径写法:

‘d:/test.txt'

创建txt编码

如果直接右击创建文档, 默认的编码方式为ansi–gbk编码方式,此时输入中文时,在打开txt文件时,需要表明encoding方式,否则会出现

"utf-16-le’ codec can’t decode bytes in position 118-119: illegal utf-16 surrogate"

这样子的错误

 with open("test.txt", 'w', encoding='utf-8') as f:

或者

 with open("test.txt", 'w', encoding='gbk') as f:

打开时使用try和except

def my_file_open(file_path):
    try:
        f = open(file_path, 'r', encoding='utf-8')
        convert_cmd = f.read()
        print(convert_cmd)
        f.close()
    except exception as e:
        print(e)

如果文不存在或者文件错误,此时可以通过except方式返回给用户,或者在ui界面中输出该反馈,提示用户

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com