我从一个包含/
和\
混合格式的api获取文件名。在
infineName='c:/mydir1/mydir2\mydir3\mydir4\123xyz.csv版'
当我试图解析目录结构时,\
后面跟一个字符被转换成单个字符。在
有没有办法让每个组件都正确?在
我已经试过了:
path.normpath didn't help.
infilename = 'c:/mydir1/mydir2\mydir3\mydir4\123xyz.csv'
os.path.normpath(infilename)
out:
'c:\\mydir1\\mydir2\\mydir3\\mydir4Sxyz.csv'
在你的例子中看不到,但是写下:
这不是一个好主意,因为一些小写(和一些大写)字母如果跟在反斜杠后面,就会被解释为转义序列。臭名昭著的例子有
^{pr2}$\t
,\b
,还有其他例子。例如:双重失败,因为2个字符被解释为“tab”和“backspace”。在
在处理文本Windows样式的路径(或regex)时,必须使用raw前缀,更好的是规范化路径以消除斜杠。在
^{3}$但是,raw前缀只适用于文本。如果在打印
repr(string)
时返回的字符串显示为'the\terrible\\dir'
,那么制表符已经被放入字符串中,除了糟糕的后处理之外,您什么也做不了。在不要使用
\
进行分析,而是尝试使用\\
进行分析。通常必须通过\
进行转义,因此\字符实际上是\\
。在在字符串之前使用r将其作为原始字符串处理(即没有字符串格式)。在
例如
更多详情请点击: https://docs.python.org/3.6/reference/lexical_analysis.html#string-and-bytes-literals
相关问题 更多 >
编程相关推荐