我有一个快速的问题。我正在尝试'greenland.gdb\topology_check\t_buildings'在'\'使用时拆分字符串S :
S.split('\')
Run Code Online (Sandbox Code Playgroud)
我期望输出列表:
['greenland.gdb', 'topology_check', 't_buildings'].
Run Code Online (Sandbox Code Playgroud)
而是返回错误:SyntaxError: EOL while scanning string literal。python中的字符“ \”是什么。与任何其他字符一起使用都可以。
您需要转义反斜杠:
S.split('\\')
Run Code Online (Sandbox Code Playgroud)
您可能还需要string_escape:
In [10]: s = 'greenland.gdb\topology_check\t_buildings'
In [11]: s.split("\\")
Out[11]: ['greenland.gdb\topology_check\t_buildings']
In [12]: s.encode("string_escape").split("\\")
Out[12]: ['greenland.gdb', 'topology_check', 't_buildings']
Run Code Online (Sandbox Code Playgroud)
\t 除非使用原始字符串,否则将被解释为制表符:
In [18]: s = 'greenland.gdb\topology_check\t_buildings'
In [19]: print(s)
greenland.gdb opology_check _buildings
In [20]: s = r'greenland.gdb\topology_check\t_buildings'
In [21]: print(s)
greenland.gdb\topology_check\t_buildings
Run Code Online (Sandbox Code Playgroud)