先来看下这个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)