python - 如何将 Python 转义字符与 MatLab 命令结合起来?

标签 python matlab

一旦我通过 ssh 连接到我想要使用的计算机,以下命令就会起作用。

cd /Volumes/promiseraid9/workspace/sarah2/Facility/; /Applications/MATLAB_R2017a.app/bin/matlab -r "cd /volumes/promiseraid9/workspace/colleen/NewResiduals/j078_8; try, run('ABOVE2019_TF01_MatLabCommands_Test.m'); end; cd /Volumes/promiseraid9/workspace/sarah2/Facility; resid_process_GPS(in_dir_list,out_dir_list);"

但是,我希望能够从 python 脚本中使用 ssh 并使用上面的命令,但结果完全如上所示(意味着所有相同的 's 和 "s)

所以我的问题是处理转义字符...

os.system('ssh -t cmbrook3@gs694-vegasx2.gsfc.nasa.gov \'cd /Volumes/promiseraid9/workspace/sarah2/Facility/; /Applications/MATLAB_R2017a.app/bin/matlab -r "cd /volumes/promiseraid9/workspace/colleen/NewResiduals/j078_8; try, run(\'ABOVE2019_TF01_MatLabCommands_Test.m\'); end; cd /Volumes/promiseraid9/workspace/sarah2/Facility; resid_process_GPS(in_dir_list,out_dir_list); end;"\'')

主要问题是 MatLab 看到的 run(\'ABOVE2019_TF01_MatLabCommands_Test.m\') 完全一样,而不仅仅是 run('ABOVE2019_TF01_MatLabCommands_Test.m')

那么在这种情况下我可以使用什么样的转义字符?

最佳答案

您可以将命令放入三引号中,如下所示:

command_to_run = (
        '''ssh -t cmbrook3@gs694-vegasx2.gsfc.nasa.gov'''
        ''' 'cd /Volumes/promiseraid9/workspace/sarah2/Facility/; '''
        '''/Applications/MATLAB_R2017a.app/bin/matlab -r '''
        '''"cd /volumes/promiseraid9/workspace/colleen/NewResiduals/j078_8;'''
        '''try, run ABOVE2019_TF01_MatLabCommands_Test.m; end; '''
        '''cd /Volumes/promiseraid9/workspace/sarah2/Facility;'''
        ''' resid_process_GPS(in_dir_list,out_dir_list);"' '''
    ).strip()# command_to_run is a string
os.system(command_to_run)

三重引号允许您将引号放入字符串中而不转义它们。

编辑:使用@ColleenB建议的修改来编辑代码。

Edit2:关于strip函数的更多解释,我用它来删除最后一个空格。没有它,Python 无法解释最后三个引号(我也可以使用三个双引号而不是简单的双引号)。

括号允许将字符串拆分为多行,而不是使用很长的行。

关于python - 如何将 Python 转义字符与 MatLab 命令结合起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57777974/

相关文章:

database - Matlab数据库准备语句和绑定(bind)变量

linux - Mex 无法识别类型 'Matrix'

python 3.5 类型提示 : can i check if function arguments match type hints?

python - 合并多个词典的最佳方法是什么?

java - 将 .mat 文件转换为 XML —— 需要添加 java 类?

matlab - 如何根据表格中的数据修改合适的单元格颜色(在Matlab中)?

matlab - 分离图像中的对象

python - PyList_New 导致 SEGFAULT

python - 如何根据条件删除包含 numpy 数组的列表中的行?

python - 使用 mocker 与 pytest 打补丁