前言:需要从C向Python传入一个字符串,该字符串是从QT上位机界面通过选择文件得到的,类似这样:E:\datat\signal.mat ,但是用Python直接打开这个文件是不可以的,可以通过三种方式来解决这个问题:
1、首先是在前面加上 r ,但是好像不太好实现,因为这个是作为一个字符串参数进行的传入
2、在Python中将‘\’,全部替换为‘\\’,这样就解决了转义的问题
3、当路径中没有转义字符的时候‘\’和‘\\’是一样的,当你进行直接的print会看到。但是当路径中有转义字符的话这时候就会比较麻烦,使用os模块也无法进行相应的转换,建议写一个函数进行相应的转换,比如replace(‘\t’,'\\t'),将转义字符表都包括进去。
(转义时ASCII一般是 \ 加八进制数字表示,所以 \ 后面最好也不要跟8以下的数字,也会被转义为对应的ASCII码)
转义字符 | 描述 |
---|---|
\(在行尾时) | 续行符 |
\\ | 反斜杠符号 |
\' | 单引号 |
\" | 双引号 |
\a | 响铃 |
\b | 退格(Backspace) |
\e | 转义 |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\oyy | 八进制数,yy代表的字符,例如:\o12代表换行 |
\xyy | 十六进制数,yy代表的字符,例如:\x0a代表换行 |
\other | 其它的字符以普通格式输出 |