前言:需要从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 | 其它的字符以普通格式输出 |
本文探讨了从C语言向Python传递包含特殊字符的文件路径时遇到的问题,并提出了三种解决方案:1. 在字符串前加'r';2. 将所有''替换为'\';3. 编写函数处理所有转义字符,确保路径正确解析。

1万+

被折叠的 条评论
为什么被折叠?



