python如何調(diào)用外部的exe程序
需求
一開始執(zhí)行外部的exe的命令被寫入xxx.cmd文件中
從python中調(diào)用該執(zhí)行命令
- 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)注意
一開始寫的時(shí)候,不知道要反斜杠需要加兩個(gè)斜杠==\\==而出現(xiàn)無法運(yùn)行的情況
未解決
output_str為執(zhí)行返回的結(jié)果,但是當(dāng)有中文輸出時(shí),在console端顯示為亂碼
路徑的寫法
在windows中,讀取文件可以用‘\’,但是在字符串中,’'是被當(dāng)做轉(zhuǎn)義字符來使用的,所以‘d:\test.txt’會(huì)被轉(zhuǎn)成‘d:\a.txt’這是正確路徑,所以不會(huì)報(bào)錯(cuò)。
而如果文件中帶了\t可能就轉(zhuǎn)義成tab鍵了。或者\(yùn)n可能轉(zhuǎn)成換行。
遇到過這樣子的錯(cuò)誤
[Error 22] Invalid argument: 'D:\\xxx\\yyy\\zzz\\abc.cmd'
使用Linux下的路徑寫法:
‘d:/test.txt'
創(chuàng)建txt編碼
如果直接右擊創(chuàng)建文檔, 默認(rèn)的編碼方式為ANSI–GBK編碼方式,此時(shí)輸入中文時(shí),在打開txt文件時(shí),需要表明encoding方式,否則會(huì)出現(xiàn)
"utf-16-le’ codec can’t decode bytes in position 118-119: illegal UTF-16 surrogate"
這樣子的錯(cuò)誤
with open("test.txt", 'w', encoding='utf-8') as f:或者
with open("test.txt", 'w', encoding='GBK') as f:打開時(shí)使用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)如果文不存在或者文件錯(cuò)誤,此時(shí)可以通過except方式返回給用戶,或者在UI界面中輸出該反饋,提示用戶
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Pytorch數(shù)據(jù)讀取之Dataset和DataLoader知識(shí)總結(jié)
Dataset和DataLoader都是Pytorch里面讀取數(shù)據(jù)的工具.現(xiàn)在對(duì)這兩種工具做一個(gè)概括和總結(jié),對(duì)正在學(xué)習(xí)Pytorch的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05
使用Python打造專業(yè)演示文稿轉(zhuǎn)換器(Markdown轉(zhuǎn)PPT)
在日常工作中,我們經(jīng)常需要將Markdown格式的文檔轉(zhuǎn)換為演示文稿,手動(dòng)復(fù)制粘貼不僅繁瑣,還容易出錯(cuò),今天我們就來看看如何用Python開發(fā)一個(gè)功能完整的Markdown到PPTX轉(zhuǎn)換器2025-07-07
python中pandas.DataFrame排除特定行方法示例
這篇文章主要給大家介紹了關(guān)于python中pandas.DataFrame排除特定行的方法,文中給出了詳細(xì)的示例代碼,相信對(duì)大家的理解和學(xué)習(xí)具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。2017-03-03
Python 使用PyQt5 完成選擇文件或目錄的對(duì)話框方法
今天小編就為大家分享一篇Python 使用PyQt5 完成選擇文件或目錄的對(duì)話框方法。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06
python3使用logging包,如何把日志寫到系統(tǒng)的rsyslog中
這篇文章主要介紹了python3使用logging包,如何把日志寫到系統(tǒng)的rsyslog中的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
python 實(shí)現(xiàn)socket服務(wù)端并發(fā)的四種方式
這篇文章主要介紹了python 實(shí)現(xiàn)socket服務(wù)端并發(fā)的四種方式,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12
一步一步教你用Python?pyglet仿制鴻蒙系統(tǒng)里的時(shí)鐘
pyglet是一個(gè)面向Python的跨平臺(tái)窗口、多媒體庫,它可以用于創(chuàng)建游戲和多媒體應(yīng)用程序,下面這篇文章主要給大家介紹了關(guān)于如何一步一步教你用Python?pyglet仿制鴻蒙系統(tǒng)里的時(shí)鐘,需要的朋友可以參考下2024-03-03
從基礎(chǔ)到高級(jí)解析Python字符串變量插值
在動(dòng)態(tài)文本處理領(lǐng)域,字符串變量插值是最關(guān)鍵的技術(shù)之一,本文將系統(tǒng)解析Python字符串插值技術(shù)體系,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2025-08-08

