python如何調(diào)用外部的exe程序
需求
一開(kāi)始執(zhí)行外部的exe的命令被寫(xiě)入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)
注意
一開(kāi)始寫(xiě)的時(shí)候,不知道要反斜杠需要加兩個(gè)斜杠==\\==而出現(xiàn)無(wú)法運(yùn)行的情況
未解決
output_str為執(zhí)行返回的結(jié)果,但是當(dāng)有中文輸出時(shí),在console端顯示為亂碼
路徑的寫(xiě)法
在windows中,讀取文件可以用‘\’,但是在字符串中,’'是被當(dāng)做轉(zhuǎn)義字符來(lái)使用的,所以‘d:\test.txt’會(huì)被轉(zhuǎn)成‘d:\a.txt’這是正確路徑,所以不會(huì)報(bào)錯(cuò)。
而如果文件中帶了\t可能就轉(zhuǎn)義成tab鍵了?;蛘運(yùn)n可能轉(zhuǎn)成換行。
遇到過(guò)這樣子的錯(cuò)誤
[Error 22] Invalid argument: 'D:\\xxx\\yyy\\zzz\\abc.cmd'
使用Linux下的路徑寫(xiě)法:
‘d:/test.txt'
創(chuàng)建txt編碼
如果直接右擊創(chuàng)建文檔, 默認(rèn)的編碼方式為ANSI–GBK編碼方式,此時(shí)輸入中文時(shí),在打開(kāi)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:
打開(kāi)時(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í)可以通過(guò)except方式返回給用戶,或者在UI界面中輸出該反饋,提示用戶
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python庫(kù)JsonSchema驗(yàn)證JSON數(shù)據(jù)結(jié)構(gòu)使用詳解
這篇文章主要為大家介紹了python庫(kù)JsonSchema驗(yàn)證JSON數(shù)據(jù)結(jié)構(gòu)的使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Python接口自動(dòng)化淺析pymysql數(shù)據(jù)庫(kù)操作流程
本文主要介紹pymysql安裝、操作流程、語(yǔ)法基礎(chǔ)及封裝操作數(shù)據(jù)庫(kù)類,需要的朋友可以參考下,希望能對(duì)大家有所幫助,每日提升一點(diǎn)點(diǎn),歡迎大家多多交流討論2021-08-08Python callable()函數(shù)用法實(shí)例分析
這篇文章主要介紹了Python callable()函數(shù)用法,結(jié)合實(shí)例形式分析了Python callable()函數(shù)的功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-03-03使用pandas庫(kù)對(duì)csv文件進(jìn)行篩選保存
這篇文章主要介紹了使用pandas庫(kù)對(duì)csv文件進(jìn)行篩選保存,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05python pandas庫(kù)的安裝和創(chuàng)建
這篇文章主要介紹了python pandas庫(kù)的安裝和創(chuàng)建,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01解決pycharm不能自動(dòng)保存在遠(yuǎn)程linux中的問(wèn)題
這篇文章主要介紹了解決pycharm不能自動(dòng)保存在遠(yuǎn)程linux中的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02Python多叉樹(shù)的構(gòu)造及取出節(jié)點(diǎn)數(shù)據(jù)(treelib)的方法
今天小編就為大家分享一篇Python多叉樹(shù)的構(gòu)造及取出節(jié)點(diǎn)數(shù)據(jù)(treelib)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08keras tensorflow 實(shí)現(xiàn)在python下多進(jìn)程運(yùn)行
今天小編就為大家分享一篇keras tensorflow 實(shí)現(xiàn)在python下多進(jìn)程運(yùn)行,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02