2012-10-15 47 views
0

我有通過命令行調用Windows軟件(collada煉油廠)的python代碼。它在英國運行良好,但不適用於中國/臺灣的機器。當文件名/文件路徑包含任何中文字符時,煉油廠無法找到或打開文件。用於檢查非英文字符是中文還是日文的Python腳本

Python代碼:

# somewhere in the code 
subprocess.popen("refinery -i <inputfile.dae> -o <outfile.dae> -x polylists2triangles", shell=True).wait()) 

當此inputfile.dae(我不得不放棄只是名字,然後加上煉油廠當前目錄的絕對路徑,並使得該輸入文件名的完整絕對路徑>奇怪,但這不是問題)被精煉廠讀取,它會拋出錯誤或無法打開文件。

我想在python中添加檢查,這樣如果輸入文件名/路徑包含中文或非英文字符,那麼它會拋出用戶定義的異常。

+1

? –

+0

不要使用'shell = True',除非該命令必須由大部分時間不是真的shell解釋。 –

+1

請參閱[這個問題](http://stackoverflow.com/questions/2718196/find-all-chinese-text-in-a-string-using-python-and-regex)。答案給出了刪除CJK字符的正則表達式,但它當然也可以用來檢測它們。 – Junuxx

回答

0

嘗試第一行解釋

# _*_ coding=utf-8 _*_ 

後定義文件編碼和保存拋出什麼錯誤的文件爲UTF-8也