先來看下這個python3源代碼,表面上看沒有語法毛病,如果源代碼字符串內容是手動復制過來的文本內容,在pycharm和vscode下始終提示:
pywintypes.error: (2, 'ShellExecute', '系統找不到指定的文件。。 ,真是暈了,后來通過比較及調試發現
對於pycharm和vscode下,從外部復制文本內容為python字符串內容是會自動在字符串前面加\u202a字符,並不提示,但是在python命令環境下會提示,如下sfile第一個字符:

當然手動輸入每個字符肯定是沒有這個問題
找到問題的根本,修改就簡單了,對於多余的字符,刪掉就可以了,見綠底部分
測試源代碼
import win32api
if __name__ == '__main__':
sfile=r
'F:\tmp\1.mp4'
if '\u202a' in sfile:
sfile=sfile[1:]
win32api.ShellExecute(0,'open',sfile,None,'.',1)
