使用python在cmd中使用带双反斜杠的文件目录
假设这是一个使用python脚本获得的文件路径:使用python在cmd中使用带双反斜杠的文件目录,python,cmd,Python,Cmd,假设这是一个使用python脚本获得的文件路径: f_path = os.getcwd() + "\\" +'out.dat' 例如,此变量的值为: 'C:\\My Python\\output\\out.dat' cmd_to_parse = 'extProg ' + '"' + f_path + '"' 现在我想通过cmd使用外部程序extProg打开这个文件。大概是这样的: cmd_to_parse = 'extProg ' + f_path os.system(cmd_to_par
f_path = os.getcwd() + "\\" +'out.dat'
例如,此变量的值为:
'C:\\My Python\\output\\out.dat'
cmd_to_parse = 'extProg ' + '"' + f_path + '"'
现在我想通过cmd使用外部程序extProg打开这个文件。大概是这样的:
cmd_to_parse = 'extProg ' + f_path
os.system(cmd_to_parse)
但我得到了以下错误:
couldn't read file "E:\My": no such file or directory
这可能是由于文件路径中出现了双反斜杠。如何解决此问题?在路径周围使用引号,空格为“C:\\My Python\\output\\out.dat”,例如:
'C:\\My Python\\output\\out.dat'
cmd_to_parse = 'extProg ' + '"' + f_path + '"'
将路径部分与os.path.join合并。问题是文件名中的空格,即My Python。请注意路径是如何在空格处吐出的,而不是反斜杠。这可能是你的问题。尝试使用子进程而不是os.system.EXCAPE返回空间slash@Evert我尝试了subprocess.call['extProg',f_path]。谢谢。请注意,如果可执行文件是带引号的路径,CMD将删除第一个和最后一个引号,这将破坏f_路径的引号。在本例中,将整个命令用双引号括起来。例如,'+'+r'C:\ProgramFiles\app\app.exe'+'++'+'+'+f_path++'''+'。shell=True的子流程为您执行此操作。